计划单据根据单据生成功能代码提交

master
郑明梁 2 years ago
parent 4bed6fcddc
commit 9d5da74e33

@ -10,14 +10,12 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant; import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType; import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.purchase.PurApplyDetailEntity; import com.glxp.api.entity.purchase.*;
import com.glxp.api.entity.purchase.PurApplyEntity;
import com.glxp.api.entity.purchase.PurPlanDetailEntity;
import com.glxp.api.entity.purchase.PurPlanEntity;
import com.glxp.api.req.purchase.PostPurPlanRequest; import com.glxp.api.req.purchase.PostPurPlanRequest;
import com.glxp.api.req.purchase.PurApplyDetailRequest; import com.glxp.api.req.purchase.PurApplyDetailRequest;
import com.glxp.api.req.purchase.PurPlanDetailRequest; import com.glxp.api.req.purchase.PurPlanDetailRequest;
@ -28,13 +26,11 @@ import com.glxp.api.res.purchase.PurOrderDetailResponse;
import com.glxp.api.res.purchase.PurPlanResponse; import com.glxp.api.res.purchase.PurPlanResponse;
import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.BasicCorpService; import com.glxp.api.service.basic.BasicCorpService;
import com.glxp.api.service.basic.IBasicBusTypeChangeService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.purchase.PurApplyDetailService; import com.glxp.api.service.purchase.*;
import com.glxp.api.service.purchase.PurApplyService;
import com.glxp.api.service.purchase.PurPlanDetailService;
import com.glxp.api.service.purchase.PurPlanService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.OrderNoTypeBean;
@ -70,7 +66,8 @@ public class PurPlanController {
PurApplyDetailService purApplyDetailService; PurApplyDetailService purApplyDetailService;
@Resource @Resource
PurPlanDetailService purPlanDetailService; PurPlanDetailService purPlanDetailService;
@Resource
IBasicBusTypeChangeService basicBusTypeChangeService;
@Resource @Resource
CustomerService customerService; CustomerService customerService;
@Resource @Resource
@ -79,6 +76,10 @@ public class PurPlanController {
IoOrderService ioOrderService; IoOrderService ioOrderService;
@Resource @Resource
IoOrderDetailBizService ioOrderDetailBizService; IoOrderDetailBizService ioOrderDetailBizService;
@Resource
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
/** /**
@ -182,72 +183,191 @@ public class PurPlanController {
@PostMapping("/purchase/plan/auditOrder") @PostMapping("/purchase/plan/auditOrder")
public BaseResponse auditOrder(@RequestBody PostPurPlanRequest postPurPlanRequest) { public BaseResponse auditOrder(@RequestBody PostPurPlanRequest postPurPlanRequest) {
Long userId = customerService.getUserId(); Long userId = customerService.getUserId();
PurPlanEntity purApplyEntity = postPurPlanRequest.getPurPlanEntity(); PurPlanEntity purPlanEntity = postPurPlanRequest.getPurPlanEntity();
purApplyEntity.setUpdateTime(new Date()); purPlanEntity.setUpdateTime(new Date());
purApplyEntity.setUpdateUser(userId+""); purPlanEntity.setUpdateUser(userId+"");
purApplyEntity.setAuditUser(userId + ""); purPlanEntity.setAuditUser(userId + "");
purApplyEntity.setAuditUser(userId + ""); purPlanEntity.setAuditUser(userId + "");
purApplyEntity.setStatus(postPurPlanRequest.getEditStatus()); purPlanEntity.setStatus(postPurPlanRequest.getEditStatus());
purPlanService.update(purApplyEntity); // purPlanService.update(purApplyEntity);
String billNo=""; if(purPlanEntity.getStatus()==3){
List<PurPlanDetailEntity> purPlanDetailEntities = purPlanDetailService.findByOrderId(purApplyEntity.getId() + ""); generateDocument(purPlanEntity);
}
//对计划单里面的供应商进行分组
Map<String, List<PurPlanDetailEntity>> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId));
// String billNo="";
if (postPurPlanRequest.getEditStatus() == ConstantStatus.APPLY_AUDIT_ED) { // List<PurPlanDetailEntity> purPlanDetailEntities = purPlanDetailService.findByOrderId(purApplyEntity.getId() + "");
//
if (CollUtil.isNotEmpty(purPlanDetailEntities) && postPurPlanRequest.isAutoPurchase()==true // //对计划单里面的供应商进行分组
&& StrUtil.isNotEmpty(postPurPlanRequest.getTargetSubInv()) && StrUtil.isNotEmpty(postPurPlanRequest.getTargetBillAction()) ) { // Map<String, List<PurPlanDetailEntity>> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId));
//
for (Map.Entry<String, List<PurPlanDetailEntity>> m:map.entrySet()) { // if (postPurPlanRequest.getEditStatus() == ConstantStatus.APPLY_AUDIT_ED) {
//生产单据表信息 //
IoOrderEntity ioOrderEntity=new IoOrderEntity(); // if (CollUtil.isNotEmpty(purPlanDetailEntities) && postPurPlanRequest.isAutoPurchase()==true
ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd"))); // && StrUtil.isNotEmpty(postPurPlanRequest.getTargetSubInv()) && StrUtil.isNotEmpty(postPurPlanRequest.getTargetBillAction()) ) {
ioOrderEntity.setCorpOrderId(CustomUtil.getDate()); //
ioOrderEntity.setMainAction(ConstantType.TYPE_PUT); // for (Map.Entry<String, List<PurPlanDetailEntity>> m:map.entrySet()) {
ioOrderEntity.setAction(postPurPlanRequest.getTargetBillAction()); // //生产单据表信息
ioOrderEntity.setFromCorp(m.getKey()); // IoOrderEntity ioOrderEntity=new IoOrderEntity();
ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN); // ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd")));
ioOrderEntity.setStatus(1); // ioOrderEntity.setCorpOrderId(CustomUtil.getDate());
ioOrderEntity.setDealStatus(1); // ioOrderEntity.setMainAction(ConstantType.TYPE_PUT);
ioOrderEntity.setOrderType(1); // ioOrderEntity.setAction(postPurPlanRequest.getTargetBillAction());
ioOrderEntity.setCreateTime(new Date()); // ioOrderEntity.setFromCorp(m.getKey());
ioOrderEntity.setCreateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); // ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN);
ioOrderEntity.setUpdateTime(new Date()); // ioOrderEntity.setStatus(1);
ioOrderEntity.setUpdateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); // ioOrderEntity.setDealStatus(1);
ioOrderEntity.setCustomerId("110"); // ioOrderEntity.setOrderType(1);
ioOrderEntity.setDeptCode(postPurPlanRequest.getTargetDeptCode()); // ioOrderEntity.setCreateTime(new Date());
ioOrderEntity.setInvCode(postPurPlanRequest.getTargetSubInv()); // ioOrderEntity.setCreateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser());
ioOrderService.insertOrder(ioOrderEntity); // ioOrderEntity.setUpdateTime(new Date());
billNo+=ioOrderEntity.getBillNo()+","; // ioOrderEntity.setUpdateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser());
//插入业务单表 // ioOrderEntity.setCustomerId("110");
for (PurPlanDetailEntity obj:m.getValue()) { // ioOrderEntity.setDeptCode(postPurPlanRequest.getTargetDeptCode());
BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId()); // ioOrderEntity.setInvCode(postPurPlanRequest.getTargetSubInv());
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); // ioOrderService.insertOrder(ioOrderEntity);
ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo()); // billNo+=ioOrderEntity.getBillNo()+",";
ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId())); // //插入业务单表
ioOrderDetailBizEntity.setCount(obj.getCount()); // for (PurPlanDetailEntity obj:m.getValue()) {
ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid()); // BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId());
ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode()); // IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc()); // ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo());
ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh()); // ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId()));
ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc()); // ioOrderDetailBizEntity.setCount(obj.getCount());
ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory()); // ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid());
ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname()); // ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode());
ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh()); // ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc());
if (basicProductsEntity.getPrice() != null) { // ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh());
ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); // ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc());
// ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory());
// ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname());
// ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh());
// if (basicProductsEntity.getPrice() != null) {
// ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice()));
// }
// ioOrderDetailBizEntity.setSupId(obj.getSupId());
// ioOrderDetailBizService.insert(ioOrderDetailBizEntity);
// }
// }
// purApplyEntity.setStockOrderNo(billNo.substring(0,billNo.length()-1));
// purPlanService.update(purApplyEntity);
// }
// }
return ResultVOUtils.success("更新成功!");
}
//根据单据生成新单据
public Boolean generateDocument(PurPlanEntity purPlanEntity){
BasicBusTypeChangeEntity basicBusTypeChangeEntity=new BasicBusTypeChangeEntity();
//查询计划详情
List<PurPlanDetailEntity> purPlanDetailEntityList=purPlanDetailService.findByOrderId(purPlanEntity.getId()+"");
//---------------------------------判断计划为已审核就生成计划单-------------------------------------------//\
PurOrderEntity purOrderEntity=new PurOrderEntity();
if(purPlanEntity.getStatus()==3){
basicBusTypeChangeEntity=basicBusTypeChangeService.selectByOriginAction("CGJH");
if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetBusAction()) && basicBusTypeChangeEntity.isEnable()==true){
purOrderEntity.setBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.CG_ORDER, "yyyyMMdd")));
purOrderEntity.setBillDate(purPlanEntity.getBillDate());
purOrderEntity.setStatus(basicBusTypeChangeEntity.getBusAuditStatus());
purOrderEntity.setRemark(purPlanEntity.getRemark());
purOrderEntity.setEmergency(purPlanEntity.getEmergency());
purOrderEntity.setArrivalTime(purPlanEntity.getArrivalTime());
purOrderEntity.setInvCode(purPlanEntity.getInvCode());
purOrderEntity.setDeptCode(purPlanEntity.getDeptCode());
purOrderEntity.setCreateUser(purPlanEntity.getAuditUser());
purOrderEntity.setCreateTime(timeProcess(purPlanEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
purOrderEntity.setUpdateUser(purPlanEntity.getAuditUser());
purOrderEntity.setUpdateTime(timeProcess(purPlanEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
if(purOrderEntity.getStatus()==3){
purOrderEntity.setAuditUser("");
purOrderEntity.setAuditTime(new Date());
} }
ioOrderDetailBizEntity.setSupId(obj.getSupId()); //插入订单主表
ioOrderDetailBizService.insert(ioOrderDetailBizEntity); purOrderService.insert(purOrderEntity);
//用stream流复制list
List<PurOrderDetailEntity> purOrderDetailEntityList = purPlanDetailEntityList.stream().map(e -> {
PurOrderDetailEntity d = new PurOrderDetailEntity();
d.setOrderIdFk(purOrderEntity.getId()+"");
d.setProductId(e.getProductId());
d.setProductName(e.getProductName());
d.setCount(e.getCount());
d.setSupId(e.getSupId());
d.setZczbhhzbapzbh(e.getZczbhhzbapzbh());
return d;
}).collect(Collectors.toList());
purOrderDetailService.insertPurOrderDetailEntity(purOrderDetailEntityList);
// 更新计划表信息插入订单单号
PurPlanEntity purPlanEntity1=new PurPlanEntity();
purPlanEntity1.setId(purPlanEntity.getId());
purPlanEntity1.setStockOrderNo(purOrderEntity.getBillNo());
// purPlanEntity.sets(true);
purPlanService.update(purPlanEntity1);
}
//---------------------------------判断计划为已审核就生成采购入库单-------------------------------------------//\
//查询申购单详情
List<PurPlanDetailEntity> purPlanDetailEntities=purPlanDetailService.findByOrderId(purPlanEntity.getId()+"");
//对计划单里面的供应商进行分组
Map<String, List<PurPlanDetailEntity>> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId));
String billNo="";
if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetAction()) && basicBusTypeChangeEntity.isEnable()==true){
for (Map.Entry<String, List<PurPlanDetailEntity>> m:map.entrySet()) {
//生产单据表信息
IoOrderEntity ioOrderEntity=new IoOrderEntity();
ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd")));
ioOrderEntity.setCorpOrderId(CustomUtil.getDate());
ioOrderEntity.setMainAction(ConstantType.TYPE_PUT);
ioOrderEntity.setAction(basicBusTypeChangeEntity.getTargetAction());
ioOrderEntity.setFromCorp(m.getKey());
ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN);
ioOrderEntity.setStatus(1);
ioOrderEntity.setDealStatus(1);
ioOrderEntity.setOrderType(1);
ioOrderEntity.setCreateTime(new Date());
ioOrderEntity.setCreateUser(purPlanEntity.getCreateUser());
ioOrderEntity.setUpdateTime(new Date());
ioOrderEntity.setUpdateUser(purPlanEntity.getCreateUser());
ioOrderEntity.setCustomerId("110");
ioOrderEntity.setDeptCode(purPlanEntity.getInvCode());
ioOrderEntity.setInvCode(purPlanEntity.getDeptCode());
ioOrderService.insertOrder(ioOrderEntity);
billNo+=ioOrderEntity.getBillNo()+",";
//插入业务单表
for (PurPlanDetailEntity obj:m.getValue()) {
BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId());
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo());
ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId()));
ioOrderDetailBizEntity.setCount(obj.getCount());
ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid());
ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode());
ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc());
ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh());
ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc());
ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory());
ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname());
ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh());
if (basicProductsEntity.getPrice() != null) {
ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice()));
}
ioOrderDetailBizEntity.setSupId(obj.getSupId());
ioOrderDetailBizService.insert(ioOrderDetailBizEntity);
}
}
PurPlanEntity purPlanEntity1=new PurPlanEntity();
purPlanEntity1.setId(purPlanEntity.getId());
purPlanEntity1.setStockOrderNo(billNo.substring(0,billNo.length()-1));
purPlanService.update(purPlanEntity1);
} }
} }
purApplyEntity.setStockOrderNo(billNo.substring(0,billNo.length()-1)); return true;
purPlanService.update(purApplyEntity); }
}
} public Date timeProcess(Date date,Integer timeCount) {
return ResultVOUtils.success("更新成功!"); Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.add(Calendar.HOUR,timeCount);
Date dt1 = rightNow.getTime();
return dt1;
} }

Loading…
Cancel
Save