forked from I3-YF/i3plus-mes-yfai
成都装车单打印,临时提交
parent
87e3a192a2
commit
a5290282ac
@ -1,16 +1,40 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListService;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Api(description = "装车单主页面")
|
||||
@RestController
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrder")
|
||||
|
||||
public class MesLoadingListController extends BaseMesController<MesLoadingList> {
|
||||
@Autowired
|
||||
private IMesLoadingListService loadingListService;
|
||||
|
||||
|
||||
@PostMapping(value = "/doPrint")
|
||||
@ApiOperation(value = "打印未打印发运单后修改状态")
|
||||
public ResultBean doMesMesLoadingListPrint(@RequestBody List<Long> ids) {
|
||||
try {
|
||||
// 数据校验
|
||||
return loadingListService.doMesMesLoadingListPrint(ids);
|
||||
} catch (ImppBusiException e) {
|
||||
return ResultBean.fail(e).build();
|
||||
} catch (Exception e) {
|
||||
return ResultBean.fail(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,160 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.loadingList;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
|
||||
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListDetailPrintModel;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListPrintModel;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel;
|
||||
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
|
||||
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListDetailRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description : 装配目视单标签打印
|
||||
* @Reference :
|
||||
* @Author : Castle
|
||||
* @CreateDate : 2024/6/17 16:43
|
||||
* @Modify:
|
||||
**/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ChengDuLoadingListPrintStrategy implements IPrintTemplateStrategyService {
|
||||
@Autowired
|
||||
private MesLoadingListRepository loadingListRDao;
|
||||
@Autowired
|
||||
private MesLoadingListDetailRepository loadingListDetailRDao;
|
||||
@Autowired
|
||||
private MesShippingOrderManagementRepository shippingOrderRDao;
|
||||
@Autowired
|
||||
private MesShippingOrderManagementDetailRepository shippingOrderDetailRDao;
|
||||
@Autowired
|
||||
private IMesCimSeresSrmRunSheetJisRepository runSheetJisRDao;
|
||||
|
||||
@Override
|
||||
public MesProduceSnPrintModel execute(GenSerialNoModel model, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultBean execute(List<MesLoadingList> loadingLists) {
|
||||
List<ChengDuLoadingListPrintModel> modelList = new ArrayList<>();
|
||||
for (MesLoadingList loadingList : loadingLists) {
|
||||
ChengDuLoadingListPrintModel model = getPrintData(loadingList);
|
||||
if (model != null) {
|
||||
modelList.add(model);
|
||||
}
|
||||
}
|
||||
return ResultBean.success("装车单打印成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(modelList);
|
||||
}
|
||||
|
||||
private ChengDuLoadingListPrintModel getPrintData(MesLoadingList loadingList) {
|
||||
final String organizeCode = AuthUtilExt.getOrganizeCode();
|
||||
final String userName = AuthUtilExt.getUserName();
|
||||
|
||||
ChengDuLoadingListPrintModel model = new ChengDuLoadingListPrintModel();
|
||||
model.setPrintTime(TimeTool.getNowTime(true));
|
||||
model.setOrderCode(loadingList.getOrderCode());
|
||||
model.setTruckNo(loadingList.getTruckNo());
|
||||
model.setSendDockCode(loadingList.getSendDockCode());
|
||||
|
||||
int loadingListDetailSeq = 0;
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "pid", packBean);
|
||||
DdlPreparedPack.getOrderBy("shippingCode", CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean);
|
||||
List<MesLoadingListDetail> loadingListDetails = loadingListDetailRDao.findByHqlWhere(packBean);
|
||||
for (MesLoadingListDetail detail : loadingListDetails) {
|
||||
ChengDuLoadingListDetailPrintModel detailPrintModel = new ChengDuLoadingListDetailPrintModel();
|
||||
if (StringUtils.isEmpty(detail.getShippingCode())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
DdlPackBean jisPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getStringEqualPack(detail.getShippingCode(), "docNo", jisPackBean);
|
||||
MesCimSeresSrmRunSheetJis sheetJis = runSheetJisRDao.getByProperty(jisPackBean);
|
||||
if (sheetJis == null) {
|
||||
continue;
|
||||
}
|
||||
detailPrintModel.setProductClass(detail.getShippingCode());
|
||||
detailPrintModel.setGoOutTime(sheetJis.getGoOutTime());
|
||||
detailPrintModel.setGoToTime(sheetJis.getGoToTime());
|
||||
|
||||
DdlPackBean shippingPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getStringEqualPack(detail.getShippingCode(), "shippingCode", shippingPackBean);
|
||||
MesShippingOrderManagement shippingOrder = shippingOrderRDao.getByProperty(shippingPackBean);
|
||||
if (shippingOrder == null) {
|
||||
continue;
|
||||
}
|
||||
detailPrintModel.setPartClass(shippingOrder.getShippingGroupCode());
|
||||
|
||||
double amount = 0;
|
||||
DdlPackBean shippingDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", shippingDetailPackBean);
|
||||
List<MesShippingOrderManagementDetail> shippingOrderDetails = shippingOrderDetailRDao.findByHqlWhere(shippingDetailPackBean);
|
||||
for (MesShippingOrderManagementDetail shippingOrderDetail : shippingOrderDetails) {
|
||||
amount += shippingOrderDetail.getPlanQty();
|
||||
}
|
||||
|
||||
detailPrintModel.setSeqNo(++loadingListDetailSeq);
|
||||
detailPrintModel.setAmount(amount);
|
||||
model.getDetails().add(detailPrintModel);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(model.getDetails())) {
|
||||
model.setShippingCount(model.getShippingCount());
|
||||
|
||||
double totalAmount = 0.0;
|
||||
String maxGoToTime = null;
|
||||
String minGoOutTime = null;
|
||||
for (ChengDuLoadingListDetailPrintModel detailPrintModel : model.getDetails()) {
|
||||
totalAmount += detailPrintModel.getAmount();
|
||||
if (!StringUtils.isEmpty(detailPrintModel.getGoToTime())) {
|
||||
if (StringUtils.isEmpty(maxGoToTime) || maxGoToTime.compareTo(detailPrintModel.getGoToTime()) < 0) {
|
||||
maxGoToTime = detailPrintModel.getGoToTime();
|
||||
}
|
||||
}
|
||||
if (!StringUtils.isEmpty(detailPrintModel.getGoOutTime())) {
|
||||
if (StringUtils.isEmpty(minGoOutTime) || detailPrintModel.getGoOutTime().compareTo(minGoOutTime) < 0) {
|
||||
minGoOutTime = detailPrintModel.getGoOutTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
model.setGoToTime(maxGoToTime);
|
||||
model.setGoOutTime(minGoOutTime);
|
||||
model.setTotalAmount(totalAmount);
|
||||
}
|
||||
|
||||
//查询原有报文 根据shippingCode;
|
||||
loadingList.setPrintCount(StringUtil.isEmpty(loadingList.getPrintCount())?1:loadingList.getPrintCount()+1);
|
||||
loadingList.setLastPrintTime(TimeTool.getNowTime(true));
|
||||
loadingList.setLastPrintUser(userName);
|
||||
ConvertBean.serviceModelUpdate(loadingList, userName);
|
||||
loadingListRDao.update(loadingList);
|
||||
return model;
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.estsh.i3plus.ext.mes.pojo.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 成都装车单打印明细
|
||||
* @author jason.niu
|
||||
* @description
|
||||
* @date 2025/3/15 13:53
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("成都装车单打印明细")
|
||||
public class ChengDuLoadingListDetailPrintModel {
|
||||
|
||||
@ApiModelProperty("序号")
|
||||
private Integer seqNo;
|
||||
|
||||
@ApiModelProperty("最迟到达时间")
|
||||
private String goToTime;
|
||||
|
||||
@ApiModelProperty("最早发运时间")
|
||||
private String goOutTime;
|
||||
|
||||
@ApiModelProperty("零件类")
|
||||
private String partClass;
|
||||
|
||||
@ApiModelProperty("产品类")
|
||||
private String productClass;
|
||||
|
||||
@ApiModelProperty("数量汇总")
|
||||
private Double amount;
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.estsh.i3plus.ext.mes.pojo.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 成都装车单打印
|
||||
* @author jason.niu
|
||||
* @description
|
||||
* @date 2025/3/15 13:53
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("成都装车单打印")
|
||||
public class ChengDuLoadingListPrintModel {
|
||||
|
||||
@ApiModelProperty("车牌号")
|
||||
private String truckNo;
|
||||
|
||||
@ApiModelProperty("发运道口")
|
||||
private String sendDockCode;
|
||||
|
||||
@ApiModelProperty("装车单号")
|
||||
private String orderCode;
|
||||
|
||||
@ApiModelProperty("打印时间")
|
||||
private String printTime;
|
||||
|
||||
@ApiModelProperty("最迟到达时间")
|
||||
private String goToTime;
|
||||
|
||||
@ApiModelProperty("最早发运时间")
|
||||
private String goOutTime;
|
||||
|
||||
@ApiModelProperty("小计")
|
||||
private Integer shippingCount;
|
||||
|
||||
@ApiModelProperty("数量汇总")
|
||||
private Double totalAmount;
|
||||
|
||||
@ApiModelProperty("明细")
|
||||
private List<ChengDuLoadingListDetailPrintModel> details = new ArrayList<>();
|
||||
}
|
||||
|
Loading…
Reference in New Issue