diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index a45631d1a..dacbcb24e 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -214,6 +214,7 @@ public class ConstantStatus { public static final int FROM_THRORDER = 14; //第三方单据转单 public static final int FROM_Order = 15; //采购计划转单 public static final int FROM_BACK = 17; //出库转退货单; + public static final int FROM_Muti = 18; //多次出入库单; //DI类型 diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java index d45923d23..6c3588d21 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java @@ -7,18 +7,22 @@ import com.github.pagehelper.PageInfo; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.constant.ConstantType; +import com.glxp.api.entity.auth.AuthAdmin; +import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; -import com.glxp.api.entity.inout.IoOrderMutiEntity; -import com.glxp.api.entity.inout.IoOrderMutiSetEntity; -import com.glxp.api.entity.inout.IoOrderMutiUseEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.req.inout.IoOrderMutiRequest; import com.glxp.api.res.inout.IoOrderMutiResponse; import com.glxp.api.res.inout.IoOrderMutiSetResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.UdiProductService; -import com.glxp.api.service.inout.IoOrderMutiService; -import com.glxp.api.service.inout.IoOrderMutiUseService; +import com.glxp.api.service.inout.*; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.RedisUtil; @@ -31,10 +35,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.lang.reflect.InvocationTargetException; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @RestController public class IoOrderMutiController { @@ -46,11 +47,21 @@ public class IoOrderMutiController { @Resource private IoOrderMutiUseService ioOrderMutiUseService; @Resource + private IoOrderMutiSetService ioOrderMutiSetService; + @Resource RedisUtil redisUtil; @Resource CustomerService customerService; @Resource GennerOrderUtils gennerOrderUtils; + @Resource + private IoOrderService orderService; + @Resource + IoCodeTempService codeTempService; + @Resource + IBasicBussinessTypeService basicBussinessTypeService; + @Resource + InvWarehouseService invWarehouseService; @PostMapping("/udiwms/inout/order/muti/checkUdi") @@ -72,13 +83,15 @@ public class IoOrderMutiController { return ResultVOUtils.success(ioOrderMutiEntityOne.getId()); } else { //查询物资信息 - UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udiEntity.getUdi()); + UdiProductEntity udiProductEntity = udiProductService.selectUdiByName(udiEntity.getUdi()); ioOrderMutiEntityOne = new IoOrderMutiEntity(); ioOrderMutiEntityOne.setId(IdUtil.getSnowflakeNextId()); + ioOrderMutiEntityOne.setRelIdFk(udiProductEntity.getRelId()); + ioOrderMutiEntityOne.setMark(ioOrderMutiEntity.getMark()); ioOrderMutiEntityOne.setUdiCode(ioOrderMutiEntity.getUdiCode()); - ioOrderMutiEntityOne.setBatchNo(udiProductEntity.getBatchNo()); - ioOrderMutiEntityOne.setExpireDate(udiProductEntity.getExpireDate()); - ioOrderMutiEntityOne.setProduceDate(udiProductEntity.getProduceDate()); + ioOrderMutiEntityOne.setBatchNo(udiEntity.getBatchNo()); + ioOrderMutiEntityOne.setExpireDate(udiEntity.getExpireDate()); + ioOrderMutiEntityOne.setProduceDate(udiEntity.getProduceDate()); ioOrderMutiEntityOne.setTotalCount(20); ioOrderMutiEntityOne.setStatus(0); ioOrderMutiEntityOne.setCreateUser(customerService.getUserId() + ""); @@ -87,7 +100,7 @@ public class IoOrderMutiController { ioOrderMutiEntityOne.setCreateTime(new Date()); ioOrderMutiEntityOne.setUpdateTime(new Date()); ioOrderMutiEntityOne.setNameCode(udiProductEntity.getNameCode()); - ioOrderMutiEntityOne.setSerialNo(udiProductEntity.getSerialNo()); + ioOrderMutiEntityOne.setSerialNo(udiEntity.getSerialNo()); ioOrderMutiEntityOne.setSupId(udiProductEntity.getSupId()); ioOrderMutiService.save(ioOrderMutiEntityOne); return ResultVOUtils.success(ioOrderMutiEntityOne.getId()); @@ -129,14 +142,16 @@ public class IoOrderMutiController { if (StrUtil.isNotBlank(ioOrderMutiEntity.getUdiCode())) { UdiEntity udiEntity = FilterUdiUtils.getUdi(ioOrderMutiEntity.getUdiCode()); //查询物资信息 - UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udiEntity.getUdi()); + UdiProductEntity udiProductEntity = udiProductService.selectUdiByName(udiEntity.getUdi()); IoOrderMutiEntity ioOrderMutiEntity1 = new IoOrderMutiEntity(); ioOrderMutiEntity1.setId(IdUtil.getSnowflakeNextId()); + ioOrderMutiEntity1.setRelIdFk(udiProductEntity.getRelId()); + ioOrderMutiEntity1.setMark(ioOrderMutiEntity.getMark()); ioOrderMutiEntity1.setUdiCode(ioOrderMutiEntity.getUdiCode()); - ioOrderMutiEntity1.setBatchNo(udiProductEntity.getBatchNo()); - ioOrderMutiEntity1.setExpireDate(udiProductEntity.getExpireDate()); - ioOrderMutiEntity1.setProduceDate(udiProductEntity.getProduceDate()); + ioOrderMutiEntity1.setBatchNo(udiEntity.getBatchNo()); + ioOrderMutiEntity1.setExpireDate(udiEntity.getExpireDate()); + ioOrderMutiEntity1.setProduceDate(udiEntity.getProduceDate()); ioOrderMutiEntity1.setTotalCount(20); ioOrderMutiEntity1.setStatus(0); ioOrderMutiEntity1.setUseCount(0); @@ -145,7 +160,7 @@ public class IoOrderMutiController { ioOrderMutiEntity1.setCreateTime(new Date()); ioOrderMutiEntity1.setUpdateTime(new Date()); ioOrderMutiEntity1.setNameCode(udiProductEntity.getNameCode()); - ioOrderMutiEntity1.setSerialNo(udiProductEntity.getSerialNo()); + ioOrderMutiEntity1.setSerialNo(udiEntity.getSerialNo()); ioOrderMutiEntity1.setSupId(udiProductEntity.getSupId()); ioOrderMutiService.save(ioOrderMutiEntity1); return ResultVOUtils.success(ioOrderMutiEntity1.getId()); @@ -156,7 +171,75 @@ public class IoOrderMutiController { @PostMapping("/udiwms/inout/order/muti/updateOrderMuti") public BaseResponse updateOrderMuti(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { + + String orderNo =ioOrderMutiEntity.getOrderIdFk(); + //如果是第一次的话就插入 + String mark=ioOrderMutiEntity.getMark(); + int totalCount=ioOrderMutiEntity.getTotalCount(); + int useCount=ioOrderMutiEntity.getUseCount(); + int status=ioOrderMutiEntity.getStatus(); + ioOrderMutiEntity= ioOrderMutiService.getById(ioOrderMutiEntity.getId()); + ioOrderMutiEntity.setMark(mark); + ioOrderMutiEntity.setTotalCount(totalCount); + ioOrderMutiEntity.setUseCount(useCount); + ioOrderMutiEntity.setStatus(status); + if (StrUtil.isBlank(ioOrderMutiEntity.getOrderIdFk())) { + IoOrderEntity orderEntity = new IoOrderEntity(); + //查询补单条件 + AuthAdmin authAdmin = customerService.getUserBean(); + QueryWrapper setEw = new QueryWrapper<>(); + setEw.eq("curInv", authAdmin.getLocInvCode()); + IoOrderMutiSetEntity ioOrderMutiSetEntity = ioOrderMutiSetService.getOne(setEw); + if (ioOrderMutiSetEntity == null) { + return ResultVOUtils.error(999, "请设置补单条件!"); + } + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(ioOrderMutiSetEntity.getTargetAction()); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(ioOrderMutiSetEntity.getCurInv()); + orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + orderEntity.setBillNo(orderNo); + orderEntity.setMainAction(ConstantType.TYPE_OUT); + orderEntity.setCreateUser(authAdmin.getId() + ""); + orderEntity.setCreateTime(new Date()); + orderEntity.setUpdateUser(authAdmin.getId() + ""); + orderEntity.setUpdateTime(new Date()); + orderEntity.setCustomerId(authAdmin.getCustomerId() + ""); + orderEntity.setFromCorp(ioOrderMutiSetEntity.getFromCorp()); + orderEntity.setAction(bussinessTypeEntity.getAction()); + orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); + orderEntity.setDeptCode(invWarehouseEntity.getParentId()); + orderEntity.setInvCode(invWarehouseEntity.getCode()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setFromType(ConstantStatus.FROM_Muti); + orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); + //插入单据 + orderService.insertOrder(orderEntity); + + IoCodeTempEntity ioCodeTempEntity = new IoCodeTempEntity(); + ioCodeTempEntity.setCode(ioOrderMutiEntity.getUdiCode()); + ioCodeTempEntity.setMainAction(ConstantType.TYPE_OUT); + ioCodeTempEntity.setAction(bussinessTypeEntity.getAction()); + ioCodeTempEntity.setOrderId(orderNo); + ioCodeTempEntity.setNameCode(ioOrderMutiEntity.getNameCode()); + ioCodeTempEntity.setBatchNo(ioOrderMutiEntity.getBatchNo()); + ioCodeTempEntity.setProduceDate(ioOrderMutiEntity.getProduceDate()); + ioCodeTempEntity.setExpireDate(ioOrderMutiEntity.getExpireDate()); + ioCodeTempEntity.setSerialNo(ioOrderMutiEntity.getSerialNo()); + ioCodeTempEntity.setSupId(ioOrderMutiEntity.getSupId()); + ioCodeTempEntity.setRelId(Long.valueOf(ioOrderMutiEntity.getRelIdFk())); + ioCodeTempEntity.setCount(ioOrderMutiEntity.getTotalCount()); + ioCodeTempEntity.setReCount(ioOrderMutiEntity.getTotalCount() - ioOrderMutiEntity.getUseCount()); + ioCodeTempEntity.setCreateTime(new Date()); + ioCodeTempEntity.setUpdateTime(new Date()); + ioCodeTempEntity.setDeptCode(invWarehouseEntity.getParentId()); + ioCodeTempEntity.setInvCode(invWarehouseEntity.getCode()); + codeTempService.insert(ioCodeTempEntity); + } + + ioOrderMutiEntity.setReCount(ioOrderMutiEntity.getTotalCount() - ioOrderMutiEntity.getUseCount()); + ioOrderMutiEntity.setOrderIdFk(orderNo); ioOrderMutiEntity.setCreateTime(new Date()); ioOrderMutiEntity.setCreateUser(customerService.getUserId() + ""); ioOrderMutiEntity.setUpdateTime(new Date()); @@ -183,6 +266,18 @@ public class IoOrderMutiController { @PostMapping("/udiwms/inout/order/muti/filterMutiDetailList") public BaseResponse filterMutiDetailList(@RequestBody IoOrderMutiRequest ioOrderMutiRequest) { + //判断是不是个人使用 + AuthAdmin authAdmin = customerService.getUserBean(); + QueryWrapper setEw=new QueryWrapper<>(); + setEw.eq("curInv",authAdmin.getLocInvCode()); + IoOrderMutiSetEntity ioOrderMutiSetEntity=ioOrderMutiSetService.getOne(setEw); + if(ioOrderMutiSetEntity!=null){ + if(ioOrderMutiSetEntity.getCheckUse()==1){ + ioOrderMutiRequest.setCreateUser(authAdmin.getId()+""); + } + }else{ + return ResultVOUtils.error(999,"请先设置多次出库单据类型!"); + } ioOrderMutiRequest.setStatus(0); List ioOrderMutiEntityList = ioOrderMutiService.filterList(ioOrderMutiRequest); return ResultVOUtils.success(ioOrderMutiEntityList); @@ -209,6 +304,25 @@ public class IoOrderMutiController { @PostMapping("/udiwms/inout/order/muti/addMutiDetail") public BaseResponse addMutiDetail(@RequestBody IoOrderMutiUseEntity ioOrderMutiUseEntity) { + + //判断是不是个人使用 + AuthAdmin authAdmin = customerService.getUserBean(); + QueryWrapper setEw=new QueryWrapper<>(); + setEw.eq("curInv",authAdmin.getLocInvCode()); + IoOrderMutiSetEntity ioOrderMutiSetEntity=ioOrderMutiSetService.getOne(setEw); + if(ioOrderMutiSetEntity!=null){ + if(ioOrderMutiSetEntity.getCheckUse()==1){ + IoOrderMutiEntity ioOrderMutiEntity=ioOrderMutiService.getById(ioOrderMutiUseEntity.getMutiIdFk()); + if(!ioOrderMutiEntity.getCreateUser().equals(authAdmin.getId()+"")){ + return ResultVOUtils.error(999,"该单设置了个人使用,添加失败!"); + } + } + }else{ + return ResultVOUtils.error(999,"请先设置多次出库单据类型!"); + } + + + int sum = 0; QueryWrapper ew = new QueryWrapper<>(); ew.eq("mutiIdFk", ioOrderMutiUseEntity.getMutiIdFk()); @@ -245,11 +359,21 @@ public class IoOrderMutiController { @PostMapping("/udiwms/inout/order/muti/delectMuti") public BaseResponse delectMuti(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { - Boolean falg=ioOrderMutiService.removeById(ioOrderMutiEntity); - if(falg){ - return ResultVOUtils.success(); - }else{ - return ResultVOUtils.error(999,"删除失败"); + Boolean falg = ioOrderMutiService.removeById(ioOrderMutiEntity); + if (falg) { + return ResultVOUtils.success(); + } else { + return ResultVOUtils.error(999, "删除失败"); } } + + @PostMapping("/udiwms/inout/order/muti/auditMuti") + public BaseResponse auditMuti(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { + ioOrderMutiEntity.setUpdateTime(new Date()); + ioOrderMutiEntity.setUpdateUser(customerService.getUserId()+""); + ioOrderMutiEntity.setAuditTime(new Date()); + ioOrderMutiEntity.setAuditUser(customerService.getUserId()+""); + ioOrderMutiService.updateById(ioOrderMutiEntity); + return ResultVOUtils.success(); + } } diff --git a/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java b/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java index cca4b942c..08c62e1c1 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java @@ -84,4 +84,6 @@ public interface UdiProductDao { * @return */ UdiProductEntity selectAllowNoBatch(@Param("nameCode") String nameCode); + + UdiProductEntity selectUdiByName(@Param("nameCode") String nameCode); } diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderMutiSetEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiSetEntity.java index b7104aca4..d11443c4e 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderMutiSetEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiSetEntity.java @@ -27,4 +27,8 @@ public class IoOrderMutiSetEntity { @TableField(value = "updateTime") private Date updateTime; + + @TableField(value = "checkUse") + private Integer checkUse; + } diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java index f88c66b11..a69e49c95 100644 --- a/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java +++ b/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java @@ -33,5 +33,7 @@ public class IoOrderMutiRequest extends ListPageRequest { private String ggxh; private Integer status; private String createUserName; + private String startDate; + private String endDate; } diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderMutiSetRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderMutiSetRequest.java index 80fc65e19..e1958c738 100644 --- a/src/main/java/com/glxp/api/req/inout/IoOrderMutiSetRequest.java +++ b/src/main/java/com/glxp/api/req/inout/IoOrderMutiSetRequest.java @@ -17,5 +17,6 @@ public class IoOrderMutiSetRequest extends ListPageRequest { private String invName; private String fromCorpName; private String targetActionName; + private Integer checkUse; } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderMutiResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderMutiResponse.java index c312a9810..5e7d14e0f 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderMutiResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderMutiResponse.java @@ -36,5 +36,6 @@ public class IoOrderMutiResponse { private String ggxh; private Integer status; private String createUserName; + private String auditUserName; } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderMutiSetResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderMutiSetResponse.java index a10d4c36d..23edc10ee 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderMutiSetResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderMutiSetResponse.java @@ -16,5 +16,6 @@ public class IoOrderMutiSetResponse { private String invName; private String fromCorpName; private String targetActionName; + private Integer checkUse; } diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index ee4ecdc9c..e3095aa1f 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -60,4 +60,6 @@ public interface UdiProductService { * @return */ UdiProductEntity getAllowNoBatch(String nameCode); + + UdiProductEntity selectUdiByName(String nameCode); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java index f33734304..193faa18f 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -155,4 +155,9 @@ public class UdiProductServiceImpl implements UdiProductService { String di = FilterUdiUtils.getDiStr(nameCode); return udiProductDao.selectAllowNoBatch(di); } + + @Override + public UdiProductEntity selectUdiByName(String nameCode) { + return udiProductDao.selectUdiByName(nameCode); + } } diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 1b8aa14f5..27cf7ff02 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -961,4 +961,15 @@ where nameCode = #{nameCode} limit 1 + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml b/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml index b4b9f4d9a..9b38cc006 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml @@ -8,7 +8,8 @@ io.*, b1.ggxh, b1.cpmctymc, - (SELECT userName FROM auth_user WHERE auth_user.id=io.createUser) as createUserName + (SELECT userName FROM auth_user WHERE auth_user.id=io.createUser) as createUserName, + (SELECT userName FROM auth_user WHERE auth_user.id=io.auditUser) as auditUserName FROM io_order_muti io LEFT JOIN basic_products b1 on b1.nameCode=io.nameCode @@ -31,6 +32,13 @@ and io.status = #{status} + + and io.createUser = #{createUser} + + + AND date_format(io.createTime, '%Y-%m-%d') between date_format(#{startDate}, + '%Y-%m-%d') and date_format(#{endDate}, '%Y-%m-%d') + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml b/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml index cc9a5310a..10c90f233 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml @@ -5,7 +5,7 @@ resultType="com.glxp.api.res.inout.IoOrderMutiSetResponse"> SELECT io.*, (SELECT NAME FROM auth_warehouse aw WHERE aw.CODE = io.curInv) invName, - a1.name fromCorpName, + (SELECT NAME FROM basic_corp bc WHERE bc.erpId = io.fromCorp) fromCorpName, (SELECT NAME FROM basic_bussiness_type bus WHERE bus.action = io.targetAction) targetActionName FROM io_order_muti_set io left join auth_warehouse a1 on a1.code=io.curInv