package com.glxp.api.controller.purchase; //领用单 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.inout.PurReceiveDetailEntity; import com.glxp.api.entity.inout.PurReceiveEntity; import com.glxp.api.entity.purchase.PurApplyDetailEntity; import com.glxp.api.entity.purchase.PurOrderDetailEntity; import com.glxp.api.entity.purchase.PurPlanDetailEntity; import com.glxp.api.req.inout.AddReceiveDetailRequest; import com.glxp.api.req.inout.FilterReceiveDetailRequest; import com.glxp.api.req.inout.FilterReceiveRequest; import com.glxp.api.req.inout.UpdateReceiveDetailRequest; import com.glxp.api.req.purchase.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.ReceiveDetailResponse; import com.glxp.api.res.inout.ReceiveResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.inout.ReceiveService; import com.glxp.api.service.inout.ReceivedetailService; import com.glxp.api.service.purchase.PurApplyDetailService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; 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.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @RestController public class PurOrderReceiveController extends BaseController { @Resource ReceiveService receiveService; @Resource ReceivedetailService receivedetailService; @Resource CustomerService customerService; @Resource GennerOrderUtils gennerOrderUtils; @Resource PurApplyDetailService purApplyDetailService; @Resource UdiProductService udiProductService; @AuthRuleAnnotation("") @PostMapping("/udiwms/thrsys/order/insertWeb") public BaseResponse addReceive(@RequestBody PurReceiveEntity purReceiveEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } Long userId = customerService.getUserId(); InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(purReceiveEntity.getInvCode()); InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(purReceiveEntity.getTargetInvCode()); purReceiveEntity.setCreateUser(userId + ""); purReceiveEntity.setCreateTime(new Date()); purReceiveEntity.setUpdateTime(new Date()); String orderNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.LIN_YONG, "yyyyMMdd")); purReceiveEntity.setBillNo(orderNo); purReceiveEntity.setDeptCode(curWarehouseEntity.getParentId()); purReceiveEntity.setTargetDeptCode(targetWarehouseEntity.getParentId()); receiveService.insertOrder(purReceiveEntity); return ResultVOUtils.success("成功"); } @AuthRuleAnnotation("") @PostMapping("/udiwms/receive/order/update") public BaseResponse updateReceive(@RequestBody PurReceiveEntity purReceiveEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } Long userId = customerService.getUserId(); purReceiveEntity.setStatus(purReceiveEntity.getStatus()); purReceiveEntity.setUpdateUser(userId + ""); purReceiveEntity.setUpdateTime(new Date()); receiveService.updateOrder(purReceiveEntity); return ResultVOUtils.success("成功"); } @AuthRuleAnnotation("") @GetMapping("/udiwms/receive/order/filter") public BaseResponse filterReceive(FilterReceiveRequest filterReceiveRequest) { List data = receiveService.filterList(filterReceiveRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(data); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(data); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("") @GetMapping("/udiwms/receive/order/detail") public BaseResponse filterReceiveDetail(FilterReceiveDetailRequest filterReceiveDetailRequest) { List data = receivedetailService.filterList(filterReceiveDetailRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(data); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(data); return ResultVOUtils.success(pageSimpleResponse); } @Resource InvWarehouseService invWarehouseService; @AuthRuleAnnotation("") @PostMapping("/udiwms/receive/detail/add") public BaseResponse updateReceive(@RequestBody AddReceiveDetailRequest addReceiveDetailRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } AuthAdmin authAdmin = getUser(); String orderNo = addReceiveDetailRequest.getPurReceiveEntity().getBillNo(); if (addReceiveDetailRequest.getPurReceiveEntity() == null) return ResultVOUtils.error(500, "未指定订单"); if (CollUtil.isEmpty(addReceiveDetailRequest.getDatas())) { return ResultVOUtils.error(500, "未选择产品信息"); } PurReceiveEntity purReceiveEntity = addReceiveDetailRequest.getPurReceiveEntity(); if (StrUtil.isEmpty(purReceiveEntity.getBillNo())) { InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(purReceiveEntity.getInvCode()); InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(purReceiveEntity.getTargetInvCode()); orderNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.LIN_YONG, "yyyyMMdd")); purReceiveEntity.setBillNo(orderNo); purReceiveEntity.setCreateUser(authAdmin.getId() + ""); purReceiveEntity.setCreateTime(new Date()); purReceiveEntity.setStatus(1); purReceiveEntity.setDeptCode(curWarehouseEntity.getParentId()); purReceiveEntity.setTargetDeptCode(targetWarehouseEntity.getParentId()); receiveService.insertOrder(purReceiveEntity); } for (AddReceiveDetailRequest.DetaiData detaiData : addReceiveDetailRequest.getDatas()) { PurReceiveDetailEntity purReceiveDetailEntity = new PurReceiveDetailEntity(); purReceiveDetailEntity.setOrderIdFk(purReceiveEntity.getBillNo()); purReceiveDetailEntity.setNameCode(detaiData.getNameCode()); purReceiveDetailEntity.setExpireDate(detaiData.getExpireDate()); purReceiveDetailEntity.setProductDate(detaiData.getProductDate()); purReceiveDetailEntity.setRelIdFk(detaiData.getRelId()); purReceiveDetailEntity.setBatchNo(detaiData.getBatchNo()); purReceiveDetailEntity.setSupId(detaiData.getSupId()); receivedetailService.insert(purReceiveDetailEntity); } purReceiveEntity.setUpdateTime(new Date()); receiveService.updateOrder(purReceiveEntity); return ResultVOUtils.success(orderNo); } @AuthRuleAnnotation("") @PostMapping("/udiwms/receive/detail/Update") public BaseResponse updateReceiveDetail(@RequestBody UpdateReceiveDetailRequest updateReceiveDetailRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } boolean falg = receivedetailService.updateReceiveDetail(updateReceiveDetailRequest); if (falg) { return ResultVOUtils.success(); } else { return ResultVOUtils.error(555, "更新失败!"); } } @AuthRuleAnnotation("") @GetMapping("/udiwms/receive/order/del") public BaseResponse del(String orderIdFk) { boolean falg = receiveService.delReceive(orderIdFk); if (falg) { return ResultVOUtils.success(); } else { return ResultVOUtils.error(555, "删除失败!"); } } @AuthRuleAnnotation("") @GetMapping("/udiwms/receive/detail/delReceiveDetail") public BaseResponse delReceiveDetail(Integer id) { boolean falg = receivedetailService.delDetail(id + ""); if (falg) { return ResultVOUtils.success(); } else { return ResultVOUtils.error(555, "删除失败!"); } } @AuthRuleAnnotation("") @PostMapping("/udiwms/receive/order/audit") public BaseResponse audit(@RequestBody PurReceiveEntity purReceiveEntity, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } Long userId = customerService.getUserId(); purReceiveEntity.setStatus(purReceiveEntity.getStatus()); purReceiveEntity.setUpdateUser(userId + ""); purReceiveEntity.setAuditRemark(purReceiveEntity.getAuditRemark()); purReceiveEntity.setAuditTime(new Date()); purReceiveEntity.setAuditUser(userId + ""); purReceiveEntity.setUpdateTime(new Date()); receiveService.updateOrder(purReceiveEntity); return ResultVOUtils.success("成功"); } /** * 添加申购单到采购单里面 */ @PostMapping("/receive/order/addOrderDetailAndApply") public BaseResponse addOrderDetailAndApply(@RequestBody purReceiveRequest purReceiveRequest) { if (purReceiveRequest.getOrderId() == null || purReceiveRequest.getId() == null) { return ResultVOUtils.error(999,"参数错误!"); } //查询领用单详情 List purPlanDetailEntityList=receivedetailService.selectByOrderId(purReceiveRequest.getOrderId()); //使用stream拷贝list List purOrderDetailEntityList = purPlanDetailEntityList.stream() .map(e-> { PurApplyDetailEntity d = new PurApplyDetailEntity(); d.setProductId(e.getRelIdFk().intValue()); UdiProductEntity udiProductEntity=udiProductService.findByNameCode(e.getNameCode()); d.setProductName(udiProductEntity.getCpmctymc()); d.setCount(e.getCount()); d.setSupId(e.getSupId()); d.setZczbhhzbapzbh(udiProductEntity.getZczbhhzbapzbh()); return d; }) .collect(Collectors.toList()); for (PurApplyDetailEntity obj:purOrderDetailEntityList){ obj.setOrderIdFk(purReceiveRequest.getId()+""); } //获取详情表信息 List purOrderDetailEntities=purApplyDetailService.findByOrderId(purReceiveRequest.getId()); List ids=new ArrayList<>(); for (PurApplyDetailEntity obj:purOrderDetailEntities){ for (PurApplyDetailEntity obj1:purOrderDetailEntityList){ if(obj.getProductId().equals(obj1.getProductId())){ //获取存在在详情表和申购单里面一样的产品 ids.add(obj.getId().longValue()); break; } } } //删除存在的产品 if(ids.size()>0){ purApplyDetailService.deleteByIds(ids); } boolean falg= purApplyDetailService.insertPurApplyDetailEntity(purOrderDetailEntityList); if(falg){ //查询申购单 return ResultVOUtils.success(purReceiveRequest.getId()); }else{ return ResultVOUtils.success("添加失败"); } } }