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/basic/BasicCorpController.java b/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java index c8c52b8e1..549b79918 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java @@ -514,5 +514,13 @@ public class BasicCorpController { return ResultVOUtils.success(getCorpList); } + @AuthRuleAnnotation("") + @PostMapping("/udiwms/basic/unit/maintain/selectCorpList") + public BaseResponse selectCorpList(@RequestBody BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest) { + + List getCorpList = basicUnitMaintainService.selectCorpList(basicUnitMaintainFilterRequest); + return ResultVOUtils.success(getCorpList); + } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java new file mode 100644 index 000000000..6c3588d21 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java @@ -0,0 +1,379 @@ +package com.glxp.api.controller.inout; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.*; +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.*; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import com.glxp.api.util.RedisUtil; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.lang.reflect.InvocationTargetException; +import java.util.*; + +@RestController +public class IoOrderMutiController { + + @Resource + private IoOrderMutiService ioOrderMutiService; + @Resource + private UdiProductService udiProductService; + @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") + public BaseResponse checkUdi(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { + + if (StrUtil.isNotBlank(ioOrderMutiEntity.getUdiCode())) { + //查询码是否包含序列号 + UdiEntity udiEntity = FilterUdiUtils.getUdi(ioOrderMutiEntity.getUdiCode()); + if (StrUtil.isNotBlank(udiEntity.getSerialNo())) { + //包含 + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("udiCode", ioOrderMutiEntity.getUdiCode()); + IoOrderMutiEntity ioOrderMutiEntityOne = ioOrderMutiService.getOne(ew); + //查询是否被使用过 + if (ioOrderMutiEntityOne != null) { + if (ioOrderMutiEntityOne.getReCount() == 0) { + return ResultVOUtils.error(999, "该产品库存不足!"); + } + return ResultVOUtils.success(ioOrderMutiEntityOne.getId()); + } else { + //查询物资信息 + 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(udiEntity.getBatchNo()); + ioOrderMutiEntityOne.setExpireDate(udiEntity.getExpireDate()); + ioOrderMutiEntityOne.setProduceDate(udiEntity.getProduceDate()); + ioOrderMutiEntityOne.setTotalCount(20); + ioOrderMutiEntityOne.setStatus(0); + ioOrderMutiEntityOne.setCreateUser(customerService.getUserId() + ""); + ioOrderMutiEntityOne.setUseCount(0); + ioOrderMutiEntityOne.setReCount(20); + ioOrderMutiEntityOne.setCreateTime(new Date()); + ioOrderMutiEntityOne.setUpdateTime(new Date()); + ioOrderMutiEntityOne.setNameCode(udiProductEntity.getNameCode()); + ioOrderMutiEntityOne.setSerialNo(udiEntity.getSerialNo()); + ioOrderMutiEntityOne.setSupId(udiProductEntity.getSupId()); + ioOrderMutiService.save(ioOrderMutiEntityOne); + return ResultVOUtils.success(ioOrderMutiEntityOne.getId()); + } + } else { + //不包含 + return ResultVOUtils.error(888, ""); + } + } else { + return ResultVOUtils.error(999, "请选填写UDI码!"); + } + } + + + @GetMapping("/udiwms/inout/order/muti/filterMutiList") + public BaseResponse filterMutiList(IoOrderMutiEntity ioOrderMutiEntity) { + + ioOrderMutiEntity = ioOrderMutiService.getById(ioOrderMutiEntity.getId()); + UdiProductEntity udiProductEntity = udiProductService.findByNameCode(ioOrderMutiEntity.getNameCode()); + IoOrderMutiResponse ioOrderMutiResponse = new IoOrderMutiResponse(); + BeanUtils.copyProperties(ioOrderMutiEntity, ioOrderMutiResponse); + ioOrderMutiResponse.setCpmctymc(udiProductEntity.getCpmctymc()); + ioOrderMutiResponse.setGgxh(udiProductEntity.getGgxh()); + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("mutiIdFk", ioOrderMutiEntity.getId()); + ew.select("io_order_muti_use.*,(SELECT userName FROM auth_user WHERE auth_user.id=io_order_muti_use.useUser) as createUserName"); + List ioOrderMutiUseEntityList = ioOrderMutiUseService.list(ew); + Map map = new HashMap<>(); + map.put("data", ioOrderMutiResponse); + map.put("detailList", ioOrderMutiUseEntityList); + return ResultVOUtils.success(map); + + } + + + @PostMapping("/udiwms/inout/order/muti/addOrderMuti") + public BaseResponse addOrderMuti(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { + + if (StrUtil.isNotBlank(ioOrderMutiEntity.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(ioOrderMutiEntity.getUdiCode()); + //查询物资信息 + 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(udiEntity.getBatchNo()); + ioOrderMutiEntity1.setExpireDate(udiEntity.getExpireDate()); + ioOrderMutiEntity1.setProduceDate(udiEntity.getProduceDate()); + ioOrderMutiEntity1.setTotalCount(20); + ioOrderMutiEntity1.setStatus(0); + ioOrderMutiEntity1.setUseCount(0); + ioOrderMutiEntity1.setReCount(20); + ioOrderMutiEntity1.setCreateUser(customerService.getUserId() + ""); + ioOrderMutiEntity1.setCreateTime(new Date()); + ioOrderMutiEntity1.setUpdateTime(new Date()); + ioOrderMutiEntity1.setNameCode(udiProductEntity.getNameCode()); + ioOrderMutiEntity1.setSerialNo(udiEntity.getSerialNo()); + ioOrderMutiEntity1.setSupId(udiProductEntity.getSupId()); + ioOrderMutiService.save(ioOrderMutiEntity1); + return ResultVOUtils.success(ioOrderMutiEntity1.getId()); + } else { + return ResultVOUtils.error(999, "请选填写UDI码!"); + } + } + + @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()); + ioOrderMutiEntity.setUpdateUser(customerService.getUserId() + ""); + boolean falg = ioOrderMutiService.updateById(ioOrderMutiEntity); + + + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("mutiIdFk", ioOrderMutiEntity.getId()); + List ioOrderMutiUseEntityList = ioOrderMutiUseService.list(ew); + for (IoOrderMutiUseEntity ioOrderMutiUseEntity : ioOrderMutiUseEntityList) { + ioOrderMutiUseEntity.setStatus(1); + } + ioOrderMutiUseService.updateBatchById(ioOrderMutiUseEntityList); + + if (falg) { + return ResultVOUtils.success(); + } else { + return ResultVOUtils.error(999, "更新失败"); + } + } + + + @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); + } + + @PostMapping("/udiwms/inout/order/muti/selectMutiDetailList") + public BaseResponse selectMutiDetailList(@RequestBody IoOrderMutiUseEntity ioOrderMutiUseEntity) { + + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("mutiIdFk", ioOrderMutiUseEntity.getMutiIdFk()); + ew.select("io_order_muti_use.*,(SELECT userName FROM auth_user WHERE auth_user.id=io_order_muti_use.useUser) as createUserName"); + List ioOrderMutiEntityList = ioOrderMutiUseService.list(ew); + return ResultVOUtils.success(ioOrderMutiEntityList); + } + + + @PostMapping("/udiwms/inout/order/muti/selectMutiList") + public BaseResponse selectMutiList(@RequestBody IoOrderMutiRequest ioOrderMutiRequest) { + List list = ioOrderMutiService.filterList(ioOrderMutiRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + + @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()); + Long count = ioOrderMutiUseService.count(ew); + if (count == null) { + sum = 0; + } else { + sum = count.intValue(); + } + IoOrderMutiEntity ioOrderMutiEntity = ioOrderMutiService.getById(ioOrderMutiUseEntity.getMutiIdFk()); + if (ioOrderMutiEntity.getTotalCount() - count == 0) { + return ResultVOUtils.error(999, "该产品数量不足!"); + } + ioOrderMutiUseEntity.setId(IdUtil.getSnowflakeNextId()); + ioOrderMutiUseEntity.setCurIndex(sum + 1); + ioOrderMutiUseEntity.setUseUser(customerService.getUserId() + ""); + ioOrderMutiUseEntity.setUseTime(new Date()); + ioOrderMutiUseService.save(ioOrderMutiUseEntity); + return ResultVOUtils.success(); + } + + @GetMapping("/udiwms/inout/order/muti/getMark") + public BaseResponse getMark() { + String recordId = gennerOrderUtils.createOrderMark(new OrderNoTypeBean("yyMMdd")); + return ResultVOUtils.success(recordId); + } + + @PostMapping("/udiwms/inout/order/muti/delectMutiDelect") + public BaseResponse delectMutiDelect(@RequestBody IoOrderMutiUseEntity ioOrderMutiUseEntity) { + ioOrderMutiUseService.removeById(ioOrderMutiUseEntity); + return ResultVOUtils.success(); + } + + @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, "删除失败"); + } + } + + @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/controller/inout/IoOrderMutiSetController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiSetController.java new file mode 100644 index 000000000..b8a286d0e --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiSetController.java @@ -0,0 +1,88 @@ +package com.glxp.api.controller.inout; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inout.IoOrderMutiSetEntity; +import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.req.inout.IoOrderMutiSetRequest; +import com.glxp.api.res.inout.IoCodeResponse; +import com.glxp.api.res.inout.IoOrderMutiSetResponse; +import com.glxp.api.service.inout.IoOrderMutiSetService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@RestController +public class IoOrderMutiSetController { + + @Resource + private IoOrderMutiSetService ioOrderMutiSetService; + + @GetMapping("/udiwms/inout/muti/filterList") + public BaseResponse filterList(IoOrderMutiSetRequest ioOrderMutiSetRequest) { + List list = ioOrderMutiSetService.filterList(ioOrderMutiSetRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + + @PostMapping("/udiwms/inout/muti/add") + public BaseResponse addIoOrderMuti(@RequestBody IoOrderMutiSetEntity ioOrderMutiSetEntity) { + + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("curInv",ioOrderMutiSetEntity.getCurInv()); + long count=ioOrderMutiSetService.count(ew); + if(count>0){ + return ResultVOUtils.error(999,"已存在该仓库的出入库设置!"); + } + + ioOrderMutiSetEntity.setId(IdUtil.getSnowflakeNextId()); + ioOrderMutiSetEntity.setUpdateTime(new Date()); + Boolean falg=ioOrderMutiSetService.save(ioOrderMutiSetEntity); + if(falg){ + return ResultVOUtils.success(); + }else{ + return ResultVOUtils.error(999,"添加失败"); + } + } + + + @PostMapping("/udiwms/inout/muti/update") + public BaseResponse updateIoOrderMuti(@RequestBody IoOrderMutiSetEntity ioOrderMutiSetEntity) { + + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("curInv",ioOrderMutiSetEntity.getCurInv()); + IoOrderMutiSetEntity ioOrderMutiSetServiceOne=ioOrderMutiSetService.getOne(ew); + if(!ioOrderMutiSetServiceOne.getId().equals(ioOrderMutiSetEntity.getId())){ + return ResultVOUtils.error(999,"已存在该仓库的出入库设置!"); + } + + ioOrderMutiSetEntity.setUpdateTime(new Date()); + Boolean falg=ioOrderMutiSetService.updateById(ioOrderMutiSetEntity); + if(falg){ + return ResultVOUtils.success(); + }else{ + return ResultVOUtils.error(999,"更新失败"); + } + } + + @PostMapping("/udiwms/inout/muti/detail") + public BaseResponse detailIoOrderMuti(@RequestBody IoOrderMutiSetEntity ioOrderMutiSetEntity) { + + Boolean falg=ioOrderMutiSetService.removeById(ioOrderMutiSetEntity); + if(falg){ + return ResultVOUtils.success(); + }else{ + return ResultVOUtils.error(999,"删除失败"); + } + } + +} 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/dao/inout/IoOrderMutiMapper.java b/src/main/java/com/glxp/api/dao/inout/IoOrderMutiMapper.java index 1aacd097c..26b4d0891 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderMutiMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderMutiMapper.java @@ -2,8 +2,14 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inout.IoOrderMutiEntity; +import com.glxp.api.req.inout.IoOrderMutiRequest; +import com.glxp.api.res.inout.IoOrderMutiResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface IoOrderMutiMapper extends BaseMapper { + + List filterList(IoOrderMutiRequest ioOrderMutiRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderMutiSetMapper.java b/src/main/java/com/glxp/api/dao/inout/IoOrderMutiSetMapper.java index 767880ce6..ec54c8790 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderMutiSetMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderMutiSetMapper.java @@ -2,8 +2,14 @@ package com.glxp.api.dao.inout; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.glxp.api.entity.inout.IoOrderMutiSetEntity; +import com.glxp.api.req.inout.IoOrderMutiSetRequest; +import com.glxp.api.res.inout.IoOrderMutiSetResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface IoOrderMutiSetMapper extends BaseMapper { + + List filterList(IoOrderMutiSetRequest ioOrderMutiSetRequest); } diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderMutiEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiEntity.java index 6c6671b58..0792e6ee0 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderMutiEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiEntity.java @@ -136,4 +136,10 @@ public class IoOrderMutiEntity { @TableField(value = "auditTime") private Date auditTime; + /** + * 状态0未提交1已提交 + */ + @TableField(value = "status") + private Integer status; + } 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/entity/inout/IoOrderMutiUseEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiUseEntity.java index 9a918cf97..806bd3a48 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderMutiUseEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderMutiUseEntity.java @@ -57,4 +57,11 @@ public class IoOrderMutiUseEntity { */ @TableField(value = "remark") private String remark; + + + @TableField(value = "status") + private Integer status; + + @TableField(exist=false) + private String createUserName; } diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java new file mode 100644 index 000000000..a69e49c95 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/IoOrderMutiRequest.java @@ -0,0 +1,39 @@ +package com.glxp.api.req.inout; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.Date; + +@Data +public class IoOrderMutiRequest extends ListPageRequest { + + private Long id; + private String orderIdFk; + private String udiCode; + private String relIdFk; + private String mark; + private Integer totalCount; + private Integer useCount; + private Integer reCount; + private Date createTime; + private Date updateTime; + private String createUser; + private String updateUser; + private String reamrk; + private String nameCode; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String supId; + private String auditUser; + private Date auditTime; + private String cpmctymc; + 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 new file mode 100644 index 000000000..e1958c738 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/IoOrderMutiSetRequest.java @@ -0,0 +1,22 @@ +package com.glxp.api.req.inout; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.Date; + +@Data +public class IoOrderMutiSetRequest extends ListPageRequest { + + private Long id; + private String curInv; + private String fromCorp; + private String targetAction; + private String remark; + private Date updateTime; + 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 new file mode 100644 index 000000000..5e7d14e0f --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoOrderMutiResponse.java @@ -0,0 +1,41 @@ +package com.glxp.api.res.inout; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +@Data +public class IoOrderMutiResponse { + + private Long id; + private String orderIdFk; + private String udiCode; + private String relIdFk; + private String mark; + private Integer totalCount; + private Integer useCount; + private Integer reCount; + private Date createTime; + private Date updateTime; + private String createUser; + private String updateUser; + private String reamrk; + private String nameCode; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String supId; + private String auditUser; + private Date auditTime; + private String cpmctymc; + 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 new file mode 100644 index 000000000..23edc10ee --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoOrderMutiSetResponse.java @@ -0,0 +1,21 @@ +package com.glxp.api.res.inout; + + +import lombok.Data; + +import java.util.Date; +@Data +public class IoOrderMutiSetResponse { + + private Long id; + private String curInv; + private String fromCorp; + private String targetAction; + private String remark; + private Date updateTime; + private String invName; + private String fromCorpName; + private String targetActionName; + private Integer checkUse; + +} diff --git a/src/main/java/com/glxp/api/service/basic/BasicCorpService.java b/src/main/java/com/glxp/api/service/basic/BasicCorpService.java index e96da293a..c1ef129ea 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicCorpService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicCorpService.java @@ -53,4 +53,6 @@ public interface BasicCorpService { List getCorpList(); + List selectCorpList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest); + } 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/BasicCorpServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java index 730103ef0..4c6638100 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java @@ -128,6 +128,11 @@ public class BasicCorpServiceImpl implements BasicCorpService { return basicCorpDao.getCorpList(); } + @Override + public List selectCorpList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest) { + return basicCorpDao.filterList(basicUnitMaintainFilterRequest); + } + @Override public BasicCorpEntity selectById(String id) { return basicCorpDao.selectById(id); 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/java/com/glxp/api/service/inout/IoOrderMutiService.java b/src/main/java/com/glxp/api/service/inout/IoOrderMutiService.java index 88d0df842..fa5654d71 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderMutiService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderMutiService.java @@ -2,7 +2,13 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderMutiEntity; import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.req.inout.IoOrderMutiRequest; +import com.glxp.api.res.inout.IoOrderMutiResponse; + +import java.util.List; + public interface IoOrderMutiService extends IService{ + List filterList(IoOrderMutiRequest ioOrderMutiRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderMutiSetService.java b/src/main/java/com/glxp/api/service/inout/IoOrderMutiSetService.java index e8e59178c..8f6783bc4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderMutiSetService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderMutiSetService.java @@ -2,7 +2,17 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderMutiSetEntity; import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.req.inout.IoOrderMutiSetRequest; +import com.glxp.api.res.inout.IoOrderMutiSetResponse; + +import java.util.List; + public interface IoOrderMutiSetService extends IService{ + List filterList(IoOrderMutiSetRequest ioOrderMutiSetRequest); + + + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderMutiUseService.java b/src/main/java/com/glxp/api/service/inout/IoOrderMutiUseService.java index f6a00c550..f5306d6aa 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderMutiUseService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderMutiUseService.java @@ -5,4 +5,5 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface IoOrderMutiUseService extends IService{ + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiServiceImpl.java index 41e3b338d..53a90a7dc 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiServiceImpl.java @@ -1,11 +1,35 @@ package com.glxp.api.service.inout.impl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.req.inout.IoOrderMutiRequest; +import com.glxp.api.res.inout.IoOrderMutiResponse; +import com.glxp.api.res.inout.IoOrderMutiSetResponse; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.inout.IoOrderMutiEntity; import com.glxp.api.dao.inout.IoOrderMutiMapper; import com.glxp.api.service.inout.IoOrderMutiService; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + @Service public class IoOrderMutiServiceImpl extends ServiceImpl implements IoOrderMutiService{ + @Resource + private IoOrderMutiMapper ioOrderMutiMapper; + + @Override + public List filterList(IoOrderMutiRequest ioOrderMutiRequest) { + if (ioOrderMutiRequest == null) { + return Collections.emptyList(); + } + if (ioOrderMutiRequest.getPage() != null) { + int offset = (ioOrderMutiRequest.getPage() - 1) * ioOrderMutiRequest.getLimit(); + PageHelper.offsetPage(offset, ioOrderMutiRequest.getLimit()); + } + List ioOrderMutiEntityList=ioOrderMutiMapper.filterList(ioOrderMutiRequest); + return ioOrderMutiEntityList; + } } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiSetServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiSetServiceImpl.java index 8a4076ab8..3940b6114 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderMutiSetServiceImpl.java @@ -1,11 +1,35 @@ package com.glxp.api.service.inout.impl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.req.inout.IoOrderMutiSetRequest; +import com.glxp.api.res.inout.IoOrderMutiSetResponse; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.inout.IoOrderMutiSetEntity; import com.glxp.api.dao.inout.IoOrderMutiSetMapper; import com.glxp.api.service.inout.IoOrderMutiSetService; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + @Service public class IoOrderMutiSetServiceImpl extends ServiceImpl implements IoOrderMutiSetService{ + @Resource + private IoOrderMutiSetMapper ioOrderMutiSetMapper; + + @Override + public List filterList(IoOrderMutiSetRequest ioOrderMutiSetRequest) { + + if (ioOrderMutiSetRequest == null) { + return Collections.emptyList(); + } + if (ioOrderMutiSetRequest.getPage() != null) { + int offset = (ioOrderMutiSetRequest.getPage() - 1) * ioOrderMutiSetRequest.getLimit(); + PageHelper.offsetPage(offset, ioOrderMutiSetRequest.getLimit()); + } + List ioOrderMutiSetEntityList=ioOrderMutiSetMapper.filterList(ioOrderMutiSetRequest); + return ioOrderMutiSetEntityList; + } } diff --git a/src/main/java/com/glxp/api/util/GennerOrderUtils.java b/src/main/java/com/glxp/api/util/GennerOrderUtils.java index 72bea5e55..20507f219 100644 --- a/src/main/java/com/glxp/api/util/GennerOrderUtils.java +++ b/src/main/java/com/glxp/api/util/GennerOrderUtils.java @@ -252,4 +252,29 @@ public class GennerOrderUtils { return completionRandom(serialWithPrefix, orderNoTypeEnum); } + /** + * 生成多次出库记录号 + * + * @param orderNoTypeEnum + * @return + */ + public String createOrderMark(OrderNoTypeBean orderNoTypeEnum) { + //获得单号前缀 + //格式 固定前缀 +时间前缀 示例 + String formNoPrefix = getFormNoPrefix(orderNoTypeEnum); + //获得缓存key + String cacheKey = getStatCacheKey(formNoPrefix); + //获得当日自增数 + Long incrementalSerial = redisUtil.incr(cacheKey, 1); + // 设置key过期时间, 保证每天的流水号从1开始 + if (incrementalSerial == 1) { + //设置失效时间 凌晨过期 + redisUtil.expire(cacheKey, getSecondsNextEarlyMorning()); + } + //组合单号并补全流水号 + String serialWithPrefix = completionSerial(formNoPrefix, incrementalSerial, orderNoTypeEnum); + //补全随机数 + return completionRandom(serialWithPrefix, orderNoTypeEnum); + } + } diff --git a/src/main/java/com/glxp/api/util/OrderNoTypeBean.java b/src/main/java/com/glxp/api/util/OrderNoTypeBean.java index 84faf0f6b..f071b28f2 100644 --- a/src/main/java/com/glxp/api/util/OrderNoTypeBean.java +++ b/src/main/java/com/glxp/api/util/OrderNoTypeBean.java @@ -42,4 +42,13 @@ public class OrderNoTypeBean { this.randomLength = 0; this.totalLength = 5; } + + public OrderNoTypeBean(String datePattern) { + this.prefix = ""; + this.datePattern = datePattern; + this.serialLength = 3; + this.randomLength = 0; + this.totalLength = 3; + } + } 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 14af1d94e..2f4a5e503 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderMutiMapper.xml @@ -1,4 +1,48 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml b/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml index 6b3704fe0..10c90f233 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderMutiSetMapper.xml @@ -1,4 +1,18 @@ +