耗材字典根据单据生成功能代码提交

master
郑明梁 2 years ago
parent c1cfccbf87
commit d123b0824c

@ -9,15 +9,19 @@ 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.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
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.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
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.entity.purchase.*;
import com.glxp.api.req.inout.AddReceiveDetailRequest;
import com.glxp.api.req.inout.FilterReceiveDetailRequest;
import com.glxp.api.req.inout.FilterReceiveRequest;
@ -28,10 +32,14 @@ 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.IBasicBusTypeChangeService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
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.service.purchase.*;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.beans.BeanUtils;
@ -42,9 +50,8 @@ 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.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@ -63,6 +70,23 @@ public class PurOrderReceiveController extends BaseController {
PurApplyDetailService purApplyDetailService;
@Resource
UdiProductService udiProductService;
@Resource
IBasicBusTypeChangeService basicBusTypeChangeService;
@Resource
PurApplyService purApplyService;
@Resource
PurPlanService purPlanService;
@Resource
PurPlanDetailService purPlanDetailService;
@Resource
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
@Resource
IoOrderService ioOrderService;
@Resource
IoOrderDetailBizService ioOrderDetailBizService;
@AuthRuleAnnotation("")
@PostMapping("/udiwms/thrsys/order/insertWeb")
@ -218,17 +242,215 @@ public class PurOrderReceiveController extends BaseController {
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);
// 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);
if(purReceiveEntity.getStatus()==3){
generateDocument(purReceiveEntity);
}
return ResultVOUtils.success("成功");
}
//根据单据生成新单据
public Boolean generateDocument(PurReceiveEntity purReceiveEntity){
//查询耗材表
purReceiveEntity=receiveService.selectById(purReceiveEntity.getId());
//查询耗材详情
List<PurReceiveDetailEntity> purReceiveDetailEntityList=receivedetailService.selectByOrderId(purReceiveEntity.getBillNo());
PurApplyEntity purApplyEntity=new PurApplyEntity();
//查询耗材要生成的业务单
BasicBusTypeChangeEntity basicBusTypeChangeEntity=new BasicBusTypeChangeEntity();
basicBusTypeChangeEntity=basicBusTypeChangeService.selectByOriginAction("HCLY");
if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetBusAction()) && basicBusTypeChangeEntity.isEnable()==true){
purApplyEntity.setBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.SG_ORDER, "yyyyMMdd")));
purApplyEntity.setBillDate(purReceiveEntity.getBillDate());
purApplyEntity.setStatus(basicBusTypeChangeEntity.getBusAuditStatus());
purApplyEntity.setRemark(purReceiveEntity.getRemark());
purApplyEntity.setInvCode(purReceiveEntity.getTargetInvCode());
purApplyEntity.setDeptCode(purReceiveEntity.getTargetDeptCode());
purApplyEntity.setTargetInvCode(purReceiveEntity.getInvCode());
purApplyEntity.setTargetDeptCode(purReceiveEntity.getDeptCode());
purApplyEntity.setCreateUser(purReceiveEntity.getAuditUser());
purApplyEntity.setCreateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
purApplyEntity.setUpdateUser(purReceiveEntity.getAuditUser());
purApplyEntity.setUpdateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
if(purApplyEntity.getStatus()==3){
purApplyEntity.setAuditUser("");
purApplyEntity.setAuditTime(new Date());
}
//插入申购主表
purApplyService.insert(purApplyEntity);
//用stream流复制list
List<PurApplyDetailEntity> purApplyDetailEntityList = purReceiveDetailEntityList.stream().map(e -> {
PurApplyDetailEntity d = new PurApplyDetailEntity();
d.setOrderIdFk(purApplyEntity.getId()+"");
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());
purApplyDetailService.insertPurApplyDetailEntity(purApplyDetailEntityList);
//---------------------------------判断申购为已审核就生成计划单-------------------------------------------//
PurPlanEntity purPlanEntity=new PurPlanEntity();
List<PurPlanDetailEntity> purPlanDetailEntityList=new ArrayList<>();
if(purApplyEntity.getStatus()==3){
basicBusTypeChangeEntity=basicBusTypeChangeService.selectByOriginAction("CPSG");
if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetBusAction()) && basicBusTypeChangeEntity.isEnable()==true){
purPlanEntity.setBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.JH_ORDER, "yyyyMMdd")));
purPlanEntity.setBillDate(purReceiveEntity.getBillDate());
purPlanEntity.setStatus(basicBusTypeChangeEntity.getBusAuditStatus());
purPlanEntity.setRemark(purReceiveEntity.getRemark());
purPlanEntity.setInvCode(purReceiveEntity.getInvCode());
purPlanEntity.setDeptCode(purReceiveEntity.getDeptCode());
purPlanEntity.setCreateUser(purReceiveEntity.getAuditUser());
purPlanEntity.setCreateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
purPlanEntity.setUpdateUser(purReceiveEntity.getAuditUser());
purPlanEntity.setUpdateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
if(purPlanEntity.getStatus()==3){
purPlanEntity.setAuditUser("");
purPlanEntity.setAuditTime(new Date());
}
//插入计划主表
purPlanService.insert(purPlanEntity);
//用stream流复制list
purPlanDetailEntityList = purReceiveDetailEntityList.stream().map(e -> {
PurPlanDetailEntity d = new PurPlanDetailEntity();
d.setOrderIdFk(purPlanEntity.getId()+"");
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());
purPlanDetailService.insertPurPlanDetailEntity(purPlanDetailEntityList);
//更新申购表信息插入计划单号
PurApplyEntity purApplyEntity1=new PurApplyEntity();
purApplyEntity1.setId(purApplyEntity.getId());
purApplyEntity1.setPlanBillNo(purPlanEntity.getBillNo());
purApplyEntity1.setGeneratePlan(true);
purApplyService.update(purApplyEntity1);
//---------------------------------判断计划为已审核就生成计划单-------------------------------------------//\
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(purReceiveEntity.getBillDate());
purOrderEntity.setStatus(basicBusTypeChangeEntity.getBusAuditStatus());
purOrderEntity.setRemark(purReceiveEntity.getRemark());
purOrderEntity.setInvCode(purReceiveEntity.getInvCode());
purOrderEntity.setDeptCode(purReceiveEntity.getDeptCode());
purOrderEntity.setCreateUser(purReceiveEntity.getAuditUser());
purOrderEntity.setCreateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
purOrderEntity.setUpdateUser(purReceiveEntity.getAuditUser());
purOrderEntity.setUpdateTime(timeProcess(purReceiveEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime()));
if(purOrderEntity.getStatus()==3){
purOrderEntity.setAuditUser("");
purOrderEntity.setAuditTime(new Date());
}
//插入订单主表
purOrderService.insert(purOrderEntity);
//用stream流复制list
List<PurOrderDetailEntity> purOrderDetailEntityList = purReceiveDetailEntityList.stream().map(e -> {
PurOrderDetailEntity d = new PurOrderDetailEntity();
d.setOrderIdFk(purOrderEntity.getId()+"");
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());
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(purReceiveEntity.getCreateUser());
ioOrderEntity.setUpdateTime(new Date());
ioOrderEntity.setUpdateUser(purReceiveEntity.getCreateUser());
ioOrderEntity.setCustomerId("110");
ioOrderEntity.setDeptCode(purReceiveEntity.getInvCode());
ioOrderEntity.setInvCode(purReceiveEntity.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);
}
}
}
}
}
return true;
}
/**
*
*/
@ -288,5 +510,13 @@ public class PurOrderReceiveController extends BaseController {
}
public Date timeProcess(Date date,Integer timeCount) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.add(Calendar.HOUR,timeCount);
Date dt1 = rightNow.getTime();
return dt1;
}
}

Loading…
Cancel
Save