Merge remote-tracking branch 'origin/master'

master
Yangwl 1 year ago
commit 4e0c487efe

@ -36,7 +36,7 @@ public interface RemoteSapService {
/**回传sap母工单**/
@PostMapping("/sap/sapCreateOrder")
public R<List<Map<String, String>>> SapCreateOrder(@RequestBody List<SapCreateOrder> sapCreateOrderList);
public R<List<String>> SapCreateOrder(@RequestBody List<SapCreateOrder> sapCreateOrderList);
/**关闭订单**/
@PostMapping("/sap/sapCloseOrder")

@ -35,7 +35,7 @@ public class RemoteSapFallbackFactory implements FallbackFactory<RemoteSapServic
}
@Override
public R<List<Map<String, String>>> SapCreateOrder(List<SapCreateOrder> sapCreateOrderList) {
public R<List<String>> SapCreateOrder(List<SapCreateOrder> sapCreateOrderList) {
return R.fail("回传sap工单失败:" + throwable.getMessage());
}

@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.MesReportWorkConsumeTabs;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
@ -148,6 +149,16 @@ public class MesReportWorkConsumeController extends BaseController {
return rlist;
}
/**
*
**/
@RequiresPermissions("mes:reportWork:report")
@GetMapping("/getAllLevelConsumeList")
public List getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsumeTabs> rlist = mesReportWorkConsumeService.getAllLevelConsumeList(mesReportWorkConsume);
return rlist;
}
@PostMapping("/submitConsumePS")
public AjaxResult submitConsumePS(@RequestBody List<MesReportWorkConsume> mesReportWorkConsume) {
return toAjax(mesReportWorkConsumeService.submitConsumePS(mesReportWorkConsume));

@ -13,15 +13,21 @@ import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.poi.ExcelMapUtil;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.*;
import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@ -46,10 +52,11 @@ import com.op.common.core.utils.poi.ExcelUtilDailyReport;
* @date 2023-08-24
*/
@RestController
@RequestMapping("/reportWork")
@RequestMapping("./reportWork")
public class MesReportWorkController extends BaseController {
@Autowired
private IMesReportWorkService mesReportWorkService;
/**
*
*/
@ -444,7 +451,11 @@ public class MesReportWorkController extends BaseController {
e.printStackTrace();
}
}
/**获取母子报工记录**/
/**获取最新领料单**/
@PostMapping("/getNewPrepareData")
public List<MesPrepareDetailDTO> getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) {
return mesReportWorkService.getNewPrepareData(mesPrepareDetail);
}
}

@ -26,8 +26,9 @@ public class MesReportWorksController extends BaseController {
@RequiresPermissions("mes:reportWork:lists")
@GetMapping("/lists")
public TableDataInfo lists(MesReportWork mesReportWork) {
startPage();
List<MesReportWork> hzlist = mesReportWorksService.getReportWorksList(mesReportWork);
return getDataTable(hzlist);
// startPage();
// List<MesReportWork> hzlist = mesReportWorksService.getReportWorksList(mesReportWork);
// return getDataTable(hzlist);
return null;
}
}

@ -0,0 +1,46 @@
package com.op.mes.domain;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.List;
/**
* mes_report_work_consume
*
* @author Open Platform
* @date 2023-08-24
*/
public class MesReportWorkConsumeTabs extends BaseEntity {
private static final long serialVersionUID = 1L;
private String libId;
private String title;
private List<MesReportWorkConsume> libList;
public String getLibId() {
return libId;
}
public void setLibId(String libId) {
this.libId = libId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<MesReportWorkConsume> getLibList() {
return libList;
}
public void setLibList(List<MesReportWorkConsume> libList) {
this.libList = libList;
}
}

@ -28,7 +28,7 @@ public class ProOrderWorkorder extends TreeEntity {
*/
@Excel(name = "工单编码")
private String workorderCode;
private String workorderCodeSap;
/**
*
*/
@ -209,6 +209,14 @@ public class ProOrderWorkorder extends TreeEntity {
private String batchCode;
private String batchId;
public String getWorkorderCodeSap() {
return workorderCodeSap;
}
public void setWorkorderCodeSap(String workorderCodeSap) {
this.workorderCodeSap = workorderCodeSap;
}
public String getBatchCode() {
return batchCode;
}

@ -136,4 +136,6 @@ public interface MesReportWorkMapper {
List<MesReportWork> getPutInOrderList(MesReportWork mesReportWorks);
ProOrderWorkorder getSonWorkOrder(String workorderCode);
public MesReportWork getReportWorkHz1(MesReportWork mesReportWork);
}

@ -9,7 +9,7 @@ import java.util.List;
@Mapper
public interface MesReportWorksMapper {
List<MesReportWork> getReportWorkList(MesReportWork mesReportWork);
//List<MesReportWork> getReportWorkList(MesReportWork mesReportWork);
}

@ -4,6 +4,7 @@ import java.util.List;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.mes.domain.MesReportWorkConsumeTabs;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
@ -84,4 +85,6 @@ public interface IMesReportWorkConsumeService {
int submitReportInfo(MesReportWork mesReportWork);
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
List<MesReportWorkConsumeTabs> getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume);
}

@ -10,6 +10,7 @@ import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
/**
@ -108,4 +109,6 @@ public interface IMesReportWorkService {
List<MesReportWork> getPutInOrderList(MesReportWork mesReportWorks);
List<MesReportWorkTabs> getAllLevelReportList(MesReportWork mesReportWork);
List<MesPrepareDetailDTO> getNewPrepareData(MesPrepareDetail mesPrepareDetail);
}

@ -287,6 +287,30 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
/****
*
*
* * ----------------------------------------
* *
* * =
* * = *
* * =
* * =
* * ----------------------------------------
* *
* * =sum(/)
* * = *
* * =
* * =
* * <p>
* *
* * =
* * = *
* * =
* * =
* * ----------------------------------------
* *
* * =
* * =
* * =
* * =
* @param mesReportWork
* @return
*/
@ -297,68 +321,111 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key
}
//根据belong_work_order找到sap工单
//根据belong_work_order找到sap工单(子子母)
List<MesReportWork> workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode());
if (CollectionUtils.isEmpty(workOrders)) {
return R.fail("子母工单信息缺失");
}
R sapRson = null;
/**子工单先报工,然后母工单报工:workOrders内容就是-子子母**/
for(MesReportWork workOrder:workOrders){
if(workOrders.size()==1){
/**(一层报工)工单报工**/
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrder.getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if (sHzWorks == null) {
return R.fail(workOrder.getWorkorderCode()+"未查询到报工单");
mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork);
if(sHzWorks==null){
return R.fail("未查询到一层报工单");
}
//子工单报工
logger.info("==========================工单("+sHzWorks.getWorkorderCodeSap()+")报工开始");
sapRson = this.reportHzToSap(sHzWorks);
logger.info("==========================工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:"
+ JSONObject.toJSONString(sapRson));
if (sapRson.getCode() == 200) {
logger.info("==========================一层工单报工开始");
sapRson = this.reportHzToSap(sHzWorks,1);
logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson));
}else if(workOrders.size()==2){
/**(两层报工)子工单先报工,然后母工单报工**/
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if(sHzWorks==null){
return R.fail("未查询到子报工单");
}
//子工单报工
logger.info("==========================子工单报工开始");
sapRson = this.reportHzToSap(sHzWorks,2);
logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson));
if(sapRson.getCode()== 200){
//一定是子单报工成功返回后,再母单报工
mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode());
MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if(pHzWork==null){
return R.fail("未查询到母报工单");
}
try {
Thread.sleep(3000);
} catch (Exception e) {
}catch (Exception e){
e.printStackTrace();
}
//最终报工标识且sap报工成功关闭子母工单
//MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork);
}else{
//报工不成功跳出循环
break;
//母工单报工
logger.info("==========================母工单报工开始");
pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback());
pHzWork.setSac1(sHzWorks.getSac1());
R sapR = this.reportHzToSap(pHzWork,2);
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
return sapR;
}
}else if(workOrders.size()>=3){
for(MesReportWork workOrder:workOrders){
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrder.getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork);
if (sHzWorks == null) {
return R.fail(workOrder.getWorkorderCode()+"未查询到报工单");
}
//三层以上工单报工
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工开始");
sapRson = this.reportHzToSap(sHzWorks,3);
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:"
+ JSONObject.toJSONString(sapRson));
if (sapRson.getCode() == 200) {
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
//最终报工标识且sap报工成功关闭子母工单
//MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork);
}else{
//报工不成功跳出循环
break;
}
}
}
return sapRson;
}
/**
*
* =sum(/)
* = *
* =
* =
* <p>
*
* =
* = *
* =
* =
*
* @param workOrder
* @return
*/
private R reportHzToSap(MesReportWork workOrder) {
private R reportHzToSap(MesReportWork workOrder,int cengji) {
Date nowTime = DateUtils.getNowDate();
SapRFW sapRFW = new SapRFW();
sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号
sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量
SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改
ltgs.setConf_activity1(workOrder.getSac1());//机器
BigDecimal newMan = new BigDecimal(workOrder.getSac1())
.multiply(new BigDecimal(workOrder.getSac2()));
BigDecimal newMan = null;
if(cengji == 3){
//订单是三层的情况
newMan = new BigDecimal(workOrder.getSac2());
}else{
//订单是一层、二层的情况
newMan = new BigDecimal(workOrder.getSac1())
.multiply(new BigDecimal(workOrder.getSac2()));
}
ltgs.setConf_activity2(newMan.toString());//人工
ltgs.setConf_activity3(workOrder.getSac1());//折旧
ltgs.setConf_activity4(newMan.toString());//其它

@ -11,7 +11,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.*;
import com.op.mes.mapper.MesReportWorkMapper;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
@ -21,7 +21,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.mes.mapper.MesReportWorkConsumeMapper;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.mes.service.IMesReportWorkConsumeService;
import org.springframework.util.CollectionUtils;
@ -260,4 +259,34 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
List<MesReportWorkConsume> dtos = mesReportWorkConsumeMapper.getBomList(mesReportWorkConsume);
return dtos;
}
@Override
@DS("#header.poolName")
public List<MesReportWorkConsumeTabs> getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsumeTabs> tabs = new ArrayList<>();
MesReportWorkConsumeTabs pTabs = new MesReportWorkConsumeTabs();
int i = 1;
pTabs.setLibId("consume"+i);
pTabs.setTitle("第"+i+"层工单物料损耗");
mesReportWorkConsume.setParentOrder("0");
List<MesReportWorkConsume> liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
pTabs.setLibList(liblist0);
tabs.add(pTabs);
ProOrderWorkorder sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(mesReportWorkConsume.getWorkorderCode());
while(sonWorkOrder!=null){
int xh = ++i;
MesReportWorkConsumeTabs sTabs = new MesReportWorkConsumeTabs();
sTabs.setLibId("consume"+xh);
sTabs.setTitle("第"+xh+"层工单物料损耗");
mesReportWorkConsume.setWorkorderCode(sonWorkOrder.getWorkorderCode());
List<MesReportWorkConsume> liblist = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
sTabs.setLibList(liblist);
tabs.add(sTabs);
sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(sonWorkOrder.getWorkorderCode());
}
return tabs;
}
}

@ -18,10 +18,15 @@ import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.LineChartSeriesDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.mes.service.IWCSInterfaceService;
import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.mes.mapper.MesReportWorkMapper;
@ -36,6 +41,12 @@ import org.springframework.util.CollectionUtils;
*/
@Service
public class MesReportWorkServiceImpl implements IMesReportWorkService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private RemoteSapService remoteSapService;
@Autowired
private MesReportWorkMapper mesReportWorkMapper;
@ -182,6 +193,50 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return tabs;
}
@Override
@DS("#header.poolName")
public List<MesPrepareDetailDTO> getNewPrepareData(MesPrepareDetail mesPrepareDetail) {
Date createDate = DateUtils.getNowDate();
String workorderCodeSap = mesReportWorkMapper.getOrderByCode(mesPrepareDetail.getWorkorderCode()).getWorkorderCodeSap();
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]"+ "开始");
List<SapMaterialPreparation> sapMaterialPreparationList = remoteSapService.materialPreparation(workorderCodeSap).getData();
if (CollectionUtils.isEmpty(sapMaterialPreparationList)) {
logger.info("sap无领料单数据:"+mesPrepareDetail.getWorkorderCode());
}
/**mes_prepare_detail**/
List<MesPrepareDetailDTO> details = new ArrayList<>();
MesPrepareDetailDTO detail = null;
for (SapMaterialPreparation sap : sapMaterialPreparationList) {
detail = new MesPrepareDetailDTO();
detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号
detail.setMaterialCode(sap.getMATNR());//物料号
detail.setMaterailName(sap.getMAKTX());//物料描述(短文本)
detail.setFactoryCode(sap.getWERKS());//工厂
detail.setLocator(sap.getLGORT());//库存地点
detail.setNeedDate(sap.getBDTER());//组件的需求日期
detail.setQuantity(sap.getBDMNG());////需求量
detail.setFundQuanlity(sap.getZQLSL());//欠料数量
detail.setUnit(sap.getMEINS());//基本计量单位
detail.setRecoil(sap.getRGEKZ());//反冲标识
detail.setBuyFlag(sap.getDBSKZ());//直接采购标识
detail.setCreateBy(SecurityUtils.getUsername());
detail.setCreateTime(createDate);
details.add(detail);
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]"
+ sap.getRSPOS() + "," + sap.getMATNR() + "," +
sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," +
sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," +
sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()
);
}
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]" + "结束");
return details;
}
@Override
@DS("#header.poolName")
public int submitReportPS(List<MesReportWork> mesReportWorks) {

@ -19,6 +19,6 @@ public class MesReportWorksServiceImpl implements IMesReportWorksService {
@Override
@DS("#header.poolName")
public List<MesReportWork> getReportWorksList(MesReportWork mesReportWork) {
return mesReportWorksMapper.getReportWorkList(mesReportWork);
return null;//mesReportWorksMapper.getReportWorkList(mesReportWork);
}
}

@ -81,7 +81,7 @@
left join mes_prepare mp on ow.workorder_code = mp.workorder_code
left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
where ow.belong_work_order = #{workorderCode}
order by mp.workorder_name desc
order by mpd.recoil
</select>
<insert id="insertMesPrepareDetail" parameterType="MesPrepareDetail">

@ -90,8 +90,8 @@
<result property="quantitySplits" column="quantitySplits"/>
<result property="units" column="units"/>
</resultMap>
<select id="getReportWorkList" resultMap="MesReportWorkResult" parameterType="MesReportWork">
<!-- <select id="getReportWorkList" resultMap="MesReportWorkResult" parameterType="MesReportWork">-->
</select>
<!-- </select>-->
</mapper>

@ -106,6 +106,7 @@
from mes_report_work_consume mrwc
where mrwc.del_flag = '0'
and mrwc.workorder_code = #{workorderCode}
order by mrwc.recoil
</select>
<select id="getSonConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.record_id recordId,

@ -412,8 +412,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select workorder_code workorderCode,
parent_order parentOrder,
quantity_split quantitySplit,
unit
from pro_order_workorder where workorder_code = #{workorderCode}
unit,
workorder_code_sap workorderCodeSap
from pro_order_workorder
where workorder_code = #{workorderCode} and del_flag = '0'
</select>
<select id="getMesListUser" resultType="com.op.system.api.domain.SysUser">
select user_id userId,
@ -588,6 +590,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
<!--left join pro_route rte on rte.route_code = ow.route_code-->
</select>
<select id="getReportWorkHz1" resultType="com.op.mes.domain.MesReportWork">
select
ow.workorder_code workorderCode,
ow.workorder_code_sap workorderCodeSap,
mrw.quantity_feedback quantityFeedback,
mrw.product_code productCode,
mrw.product_name productName,
mrw.sac1,
mrw.sac2
from (
select
workorder_code,
sum(quantity_feedback) quantity_feedback,
sum(work_time) sac1,
use_man sac2,
product_code,
product_name
from
mes_report_work
where upload_status != #{uploadStatus} and prod_type = #{prodType}
and workorder_code = #{workorderCode}
group by workorder_code,product_code,product_name,use_man
) mrw
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
</select>
<select id="getEndReport" resultType="com.op.mes.domain.MesReportWork">
select end_report endReport
from mes_report_work

@ -117,7 +117,7 @@
pw.material_name materialName
from
pro_wet_material_plan_detail pw
where CONVERT(varchar(10),plan_time, 120) = #{reqTime}
where CONVERT(varchar(10),plan_time, 120) = #{reqTime} AND sync_flag='Y' AND del_flag='0'
</select>
<select id="getSapWorkOrder" resultType="java.lang.String">
select workorder_code_sap from pro_order_workorder

@ -19,7 +19,7 @@ public class ProOrder extends TreeEntity {
/** ID */
private String id;
private String cegci;
/** 计划工厂编码 */
private String planFactoryCode;
@ -357,6 +357,14 @@ public class ProOrder extends TreeEntity {
this.sortNo = sortNo;
}
public String getCegci() {
return cegci;
}
public void setCegci(String cegci) {
this.cegci = cegci;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -355,20 +355,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
ordercodes.add(whiteOrder.getOrderCode());
Boolean isNotTop = true;
//成品的母工单//查下一级工单
ProOrderWorkorder queryWorkOrder = whiteOrder;
while (isNotTop) {
if(!"0".equals(whiteOrder.getParentOrder())){
//查上一级工单
whiteOrder.setWorkorderCode(whiteOrder.getParentOrder());
ProOrderWorkorder sWorkOrder = proOrderWorkorderMapper.getSonWorkOrder(whiteOrder);
if (sWorkOrder != null) {
wids.add(sWorkOrder.getWorkorderId());
wcodes.add(sWorkOrder.getWorkorderCode());
ordercodes.add(sWorkOrder.getOrderCode());
}
if ("0".equals(sWorkOrder.getParentOrder())) {
BeanUtils.copyProperties(sWorkOrder, whiteOrder);
isNotTop = false;
}
ProOrderWorkorder sWorkOrder = proOrderWorkorderMapper.getSonWorkOrder(queryWorkOrder);
if (sWorkOrder != null) {
wids.add(sWorkOrder.getWorkorderId());
wcodes.add(sWorkOrder.getWorkorderCode());
ordercodes.add(sWorkOrder.getOrderCode());
queryWorkOrder.setWorkorderCode(sWorkOrder.getWorkorderCode());
}else{
isNotTop = false;
}
@ -390,7 +384,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
sapList.add(sap);
logger.info(whiteOrder.getWorkorderCode() + "sap工单回传sap工单号开始" + JSONObject.toJSONString(sapList));
R<List<Map<String, String>>> r = remoteSapService.SapCreateOrder(sapList);
R<List<String>> r = remoteSapService.SapCreateOrder(sapList);
logger.info("sap工单回传" + r.getMsg());
if (500 == r.getCode()) {
logger.error("工单派发sap工单回传(sap订单创建失败)" + r.getMsg());
@ -398,12 +392,8 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
} else {
logger.info("工单派发sap工单回传(sap订单创建成功)" + JSONObject.toJSONString(r));
}
List<Map<String, String>> returnMaps = r.getData();
List<String> returnCodes = new ArrayList<>();
for (Map<String, String> mapdto : returnMaps) {
returnCodes.add(mapdto.get("LEAD_AUFNR"));
returnCodes.add(mapdto.get("AUFNR"));
}
List<String> returnCodes = r.getData();
Date updateTime = DateUtils.getNowDate();
if (!CollectionUtils.isEmpty(returnCodes)) {
logger.info("sap工单回传sap工单号结束" + StringUtils.join(returnCodes, ","));

@ -229,6 +229,7 @@
<if test="carNum != null">car_num,</if>
<if test="syncUser != null">sync_user,</if>
from_sap_time,
cegci,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
@ -258,6 +259,7 @@
<if test="carNum != null">#{carNum},</if>
<if test="syncUser != null">#{syncUser},</if>
GETDATE(),
#{cegci},
</trim>
</insert>
<insert id="addSapLog">
@ -294,6 +296,7 @@
<if test="prodType != null">prod_type = #{prodType},</if>
<if test="prodSpc != null">prod_spc = #{prodSpc},</if>
from_sap_time = GETDATE(),
cegci = #{cegci},
<if test="syncUser != null">sync_user = #{syncUser},</if>
</trim>
where id = #{id}

@ -0,0 +1,109 @@
package com.op.quality.controller;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.poi.ExcelUtil;
import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo;
import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType;
import com.op.common.security.annotation.RequiresPermissions;
import com.op.quality.domain.QcCheckTaskMarket;
import com.op.quality.service.IQcCheckTaskMarketService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
* Controller
*
* @author Open Platform
* @date 2024-01-12
*/
@RestController
@RequestMapping("/qcMarket")
public class QcCheckTaskMarketController extends BaseController {
@Autowired
private IQcCheckTaskMarketService qcCheckTaskMarketService;
/**
*
*/
@RequiresPermissions("quality:qcMarket:list")
@GetMapping("/list")
public TableDataInfo list(QcCheckTaskMarket qcCheckTaskMarket) {
//默认时间范围T 00:00:00~T+1 00:00:00
if (StringUtils.isEmpty(qcCheckTaskMarket.getIncomeTimeStart())) {
qcCheckTaskMarket.setIncomeTimeStart(DateUtils.getDate() + " 00:00:00");//start
LocalDate date = LocalDate.now();
LocalDate dateEnd = date.plusDays(1);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String dateEndStr = dtf.format(dateEnd) + " 00:00:00";
qcCheckTaskMarket.setIncomeTimeEnd(dateEndStr);//end
}
startPage();
List<QcCheckTaskMarket> list = qcCheckTaskMarketService.selectQcCheckTaskMarketList(qcCheckTaskMarket);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:export")
@Log(title = "市场不良检验任务", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QcCheckTaskMarket qcCheckTaskMarket) {
List<QcCheckTaskMarket> list = qcCheckTaskMarketService.selectQcCheckTaskMarketList(qcCheckTaskMarket);
ExcelUtil<QcCheckTaskMarket> util = new ExcelUtil<QcCheckTaskMarket>(QcCheckTaskMarket.class);
util.exportExcel(response, list, "市场不良检验任务数据");
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:query")
@GetMapping(value = "/{recordId}")
public AjaxResult getInfo(@PathVariable("recordId") String recordId) {
return success(qcCheckTaskMarketService.selectQcCheckTaskMarketByRecordId(recordId));
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:add")
@Log(title = "市场不良检验任务", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody QcCheckTaskMarket qcCheckTaskMarket) {
int r = qcCheckTaskMarketService.insertQcCheckTaskMarket(qcCheckTaskMarket);
if (r > 0) {
return toAjax(r);
}
return error("添加失败:请检查物料的关联检测项");
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:edit")
@Log(title = "市场不良检验任务", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody QcCheckTaskMarket qcCheckTaskMarket) {
return toAjax(qcCheckTaskMarketService.updateQcCheckTaskMarket(qcCheckTaskMarket));
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:remove")
@Log(title = "市场不良检验任务", businessType = BusinessType.DELETE)
@DeleteMapping("/{recordIds}")
public AjaxResult remove(@PathVariable String[] recordIds) {
return toAjax(qcCheckTaskMarketService.deleteQcCheckTaskMarketByRecordIds(recordIds));
}
}

@ -0,0 +1,558 @@
package com.op.quality.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* qc_check_task_market
*
* @author Open Platform
* @date 2024-01-12
*/
public class QcCheckTaskMarket extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
private String recordId;
/**
*
*/
@Excel(name = "检验任务编号")
private String checkNo;
/**
*
*/
@Excel(name = "来料批次号")
private String incomeBatchNo;
/**
*
*/
@Excel(name = "订单号")
private String orderNo;
/**
*
*/
@Excel(name = "物料号")
private String materialCode;
/**
*
*/
@Excel(name = "物料名称")
private String materialName;
/**
*
*/
@Excel(name = "收货数量")
private BigDecimal quality;
/**
*
*/
@Excel(name = "单位")
private String unit;
/**
*
*/
@Excel(name = "供应商编码")
private String supplierCode;
/**
*
*/
@Excel(name = "供应商名称")
private String supplierName;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date incomeTime;
/**
*
*/
@Excel(name = "检测地点")
private String checkLoc;
/**
* 012
*/
@Excel(name = "检测状态0待检测1检测中2检测完成")
private String checkStatus;
/**
*
*/
@Excel(name = "检测人工号")
private String checkManCode;
/**
*
*/
@Excel(name = "检测人姓名")
private String checkManName;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "检验时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date checkTime;
/**
* Y
*/
@Excel(name = "检验结果Y合格")
private String checkResult;
/**
* 10
*/
@Excel(name = "是否启用1启用0停用")
private String status;
/**
* 1
*/
@Excel(name = "预留字段1")
private String attr1;
/**
* 2
*/
@Excel(name = "预留字段2")
private String attr2;
/**
* 3
*/
@Excel(name = "预留字段3")
private String attr3;
/**
* 4
*/
@Excel(name = "预留字段4")
private String attr4;
/**
*
*/
@Excel(name = "工厂编码")
private String factoryCode;
/**
* 10
*/
private String delFlag;
/**
*
*/
@Excel(name = "检验节点")
private String checkType;
/**
*
*/
@Excel(name = "不合格数量")
private BigDecimal noOkQuality;
/**
*
*/
@Excel(name = "抽样数量")
private BigDecimal sampleQuality;
/**
* A
*/
@Excel(name = "A类不良")
private BigDecimal aNoOkquality;
/**
* B
*/
@Excel(name = "B类不良")
private BigDecimal bNoOkquality;
/**
* C
*/
@Excel(name = "C类不良")
private BigDecimal cNoOkquality;
/**
*
*/
@Excel(name = "检验节点大类")
private String typeCode;
/**
*
*/
@Excel(name = "订单类型")
private String orderType;
private String incomeTimeStart;
private String incomeTimeEnd;
private String checkTimeStart;
private String checkTimeEnd;
private List<QcCheckTaskDefect> defects;
public void setRecordId(String recordId) {
this.recordId = recordId;
}
public String getRecordId() {
return recordId;
}
public void setCheckNo(String checkNo) {
this.checkNo = checkNo;
}
public String getCheckNo() {
return checkNo;
}
public void setIncomeBatchNo(String incomeBatchNo) {
this.incomeBatchNo = incomeBatchNo;
}
public String getIncomeBatchNo() {
return incomeBatchNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getOrderNo() {
return orderNo;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getMaterialName() {
return materialName;
}
public void setQuality(BigDecimal quality) {
this.quality = quality;
}
public BigDecimal getQuality() {
return quality;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getUnit() {
return unit;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
public String getSupplierName() {
return supplierName;
}
public void setIncomeTime(Date incomeTime) {
this.incomeTime = incomeTime;
}
public Date getIncomeTime() {
return incomeTime;
}
public void setCheckLoc(String checkLoc) {
this.checkLoc = checkLoc;
}
public String getCheckLoc() {
return checkLoc;
}
public void setCheckStatus(String checkStatus) {
this.checkStatus = checkStatus;
}
public String getCheckStatus() {
return checkStatus;
}
public void setCheckManCode(String checkManCode) {
this.checkManCode = checkManCode;
}
public String getCheckManCode() {
return checkManCode;
}
public void setCheckManName(String checkManName) {
this.checkManName = checkManName;
}
public String getCheckManName() {
return checkManName;
}
public void setCheckTime(Date checkTime) {
this.checkTime = checkTime;
}
public Date getCheckTime() {
return checkTime;
}
public void setCheckResult(String checkResult) {
this.checkResult = checkResult;
}
public String getCheckResult() {
return checkResult;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr1() {
return attr1;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public String getAttr2() {
return attr2;
}
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
public String getAttr3() {
return attr3;
}
public void setAttr4(String attr4) {
this.attr4 = attr4;
}
public String getAttr4() {
return attr4;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getFactoryCode() {
return factoryCode;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getDelFlag() {
return delFlag;
}
public void setCheckType(String checkType) {
this.checkType = checkType;
}
public String getCheckType() {
return checkType;
}
public BigDecimal getNoOkQuality() {
return noOkQuality;
}
public void setNoOkQuality(BigDecimal noOkQuality) {
this.noOkQuality = noOkQuality;
}
public void setSampleQuality(BigDecimal sampleQuality) {
this.sampleQuality = sampleQuality;
}
public BigDecimal getSampleQuality() {
return sampleQuality;
}
public void setaNoOkquality(BigDecimal aNoOkquality) {
this.aNoOkquality = aNoOkquality;
}
public BigDecimal getaNoOkquality() {
return aNoOkquality;
}
public void setbNoOkquality(BigDecimal bNoOkquality) {
this.bNoOkquality = bNoOkquality;
}
public BigDecimal getbNoOkquality() {
return bNoOkquality;
}
public void setcNoOkquality(BigDecimal cNoOkquality) {
this.cNoOkquality = cNoOkquality;
}
public BigDecimal getcNoOkquality() {
return cNoOkquality;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getTypeCode() {
return typeCode;
}
public void setOrderType(String orderType) {
this.orderType = orderType;
}
public String getOrderType() {
return orderType;
}
public String getIncomeTimeStart() {
return incomeTimeStart;
}
public void setIncomeTimeStart(String incomeTimeStart) {
this.incomeTimeStart = incomeTimeStart;
}
public String getIncomeTimeEnd() {
return incomeTimeEnd;
}
public void setIncomeTimeEnd(String incomeTimeEnd) {
this.incomeTimeEnd = incomeTimeEnd;
}
public String getCheckTimeStart() {
return checkTimeStart;
}
public void setCheckTimeStart(String checkTimeStart) {
this.checkTimeStart = checkTimeStart;
}
public String getCheckTimeEnd() {
return checkTimeEnd;
}
public void setCheckTimeEnd(String checkTimeEnd) {
this.checkTimeEnd = checkTimeEnd;
}
public List<QcCheckTaskDefect> getDefects() {
return defects;
}
public void setDefects(List<QcCheckTaskDefect> defects) {
this.defects = defects;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("recordId", getRecordId())
.append("checkNo", getCheckNo())
.append("incomeBatchNo", getIncomeBatchNo())
.append("orderNo", getOrderNo())
.append("materialCode", getMaterialCode())
.append("materialName", getMaterialName())
.append("quality", getQuality())
.append("unit", getUnit())
.append("supplierCode", getSupplierCode())
.append("supplierName", getSupplierName())
.append("incomeTime", getIncomeTime())
.append("checkLoc", getCheckLoc())
.append("checkStatus", getCheckStatus())
.append("checkManCode", getCheckManCode())
.append("checkManName", getCheckManName())
.append("checkTime", getCheckTime())
.append("checkResult", getCheckResult())
.append("status", getStatus())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("factoryCode", getFactoryCode())
.append("delFlag", getDelFlag())
.append("checkType", getCheckType())
.append("nookQuality", getNoOkQuality())
.append("sampleQuality", getSampleQuality())
.append("aNoOkquality", getaNoOkquality())
.append("bNoOkquality", getbNoOkquality())
.append("cNoOkquality", getcNoOkquality())
.append("typeCode", getTypeCode())
.append("orderType", getOrderType())
.toString();
}
}

@ -50,6 +50,24 @@ public class QcInterface extends BaseEntity {
private String productDateStart;
private String ProductDateEnd;
private String nameDate;
private List<String> dataBarArrays;
private List<String> dataLineArrays;
public List<String> getDataBarArrays() {
return dataBarArrays;
}
public void setDataBarArrays(List<String> dataBarArrays) {
this.dataBarArrays = dataBarArrays;
}
public List<String> getDataLineArrays() {
return dataLineArrays;
}
public void setDataLineArrays(List<String> dataLineArrays) {
this.dataLineArrays = dataLineArrays;
}
public String getNameDate() {
return nameDate;

@ -0,0 +1,67 @@
package com.op.quality.mapper;
import com.op.quality.domain.QcCheckTaskMarket;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mapper
*
* @author Open Platform
* @date 2024-01-12
*/
@Mapper
public interface QcCheckTaskMarketMapper {
/**
*
*
* @param recordId
* @return
*/
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param recordId
* @return
*/
public int deleteQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param recordIds
* @return
*/
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds);
int getTodayMaxNum(QcCheckTaskMarket qcCheckTaskMarket);
}

@ -35,7 +35,7 @@ public interface QcInterfaceMapper {
@MapKey("ymd")
Map<String, QcInterface> getYearNoOkHz(QcInterface qcInterface);
List<QcProCheck> getLineNames();
List<QcProCheck> getLineNames(String ymd);
@MapKey("ymd")
Map<String, QcInterface> getDayNoOkHz(QcInterface qcInterface);

@ -0,0 +1,61 @@
package com.op.quality.service;
import com.op.quality.domain.QcCheckTaskMarket;
import java.util.List;
/**
* Service
*
* @author Open Platform
* @date 2024-01-12
*/
public interface IQcCheckTaskMarketService {
/**
*
*
* @param recordId
* @return
*/
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param recordIds
* @return
*/
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds);
/**
*
*
* @param recordId
* @return
*/
public int deleteQcCheckTaskMarketByRecordId(String recordId);
}

@ -9,6 +9,7 @@ import com.op.quality.mapper.*;
import com.op.quality.service.IQcCheckReportProduceService;
import com.op.quality.service.IQcStaticTableService;
import com.op.system.api.domain.SysUser;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -18,8 +19,11 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* Service
@ -206,6 +210,14 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
@DS("#header.poolName")
public QcCheckTaskProduce getProduceReportXJ(QcCheckTaskProduce qcCheckTaskProduce) {
QcCheckTaskProduce produce = qcCheckReportIncomeMapper.getTopInfo(qcCheckTaskProduce);
//批次号去重
if(StringUtils.isNotBlank(produce.getIncomeBatchNo())){
List<String> batchNos = Arrays.asList(produce.getIncomeBatchNo().split(";"));
List<String> disBatchNos = batchNos.stream().distinct().collect(Collectors.toList());
produce.setIncomeBatchNo(StringUtils.join(disBatchNos, ";"));
}
QcStaticTable qcStaticTable = new QcStaticTable();
qcStaticTable.setOrderNo(qcCheckTaskProduce.getOrderNo());
List<QcStaticTable> checkInfos = qcStaticTableService.getXJCheckTableDetail(qcStaticTable);

@ -56,6 +56,9 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
@Autowired
private IQcCheckTaskDefectService qcCheckTaskDefectService;
@Autowired
private QcSampleRuleMapper qcSampleRuleMapper;
/**
*
*
@ -203,6 +206,16 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
}
qcCheckTaskInventory.setNoOkQuality(noOkQuality);
/**qc_sample_rule**/
if(qcCheckTaskInventory.getNoOkQuality()==null) {
QcCheckTaskIncome sampQua = new QcCheckTaskIncome();
sampQua.setCheckType(qcCheckTaskInventory.getCheckType());
sampQua.setQuality(qcCheckTaskInventory.getQuality());
String sampNum = qcSampleRuleMapper.getSampNum(sampQua);
if (StringUtils.isNotBlank(sampNum)) {
qcCheckTaskInventory.setSampleQuality(new BigDecimal(sampNum));
}
}
/**qc_check_task**/
qcCheckTaskInventoryMapper.insertQcCheckTaskInventory(qcCheckTaskInventory);

@ -0,0 +1,300 @@
package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.quality.domain.*;
import com.op.quality.mapper.*;
import com.op.quality.service.IQcCheckTaskDefectService;
import com.op.quality.service.IQcCheckTaskMarketService;
import com.op.quality.service.IQcCheckTaskUserService;
import com.op.system.api.domain.quality.QcUserMaterialDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Service
*
* @author Open Platform
* @date 2024-01-12
*/
@Service
public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private QcCheckTaskMarketMapper qcCheckTaskMarketMapper;
@Autowired
private QcCheckTaskDetailMapper qcCheckTaskDetailMapper;
@Autowired
private QcCheckTypeProjectMapper qcCheckTypeProjectMapper;
@Autowired
private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper;
@Autowired
private IQcCheckTaskUserService qcCheckTaskUserService;
@Autowired
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
@Autowired
private IQcCheckTaskDefectService qcCheckTaskDefectService;
@Autowired
private QcSampleRuleMapper qcSampleRuleMapper;
/**
*
*
* @param recordId
* @return
*/
@Override
@DS("#header.poolName")
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId) {
QcCheckTaskMarket qcCheckTaskMarket = qcCheckTaskMarketMapper.selectQcCheckTaskMarketByRecordId(recordId);
//获取拼接好的检验人员信息
QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId);
if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) {
qcCheckTaskMarket.setCheckManName(qcCheckTaskUser.getManNames());
}
if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) {
qcCheckTaskMarket.setCheckManCode(qcCheckTaskUser.getManCodes());
}
//获取不良品检验信息
List<QcCheckTaskDefect> qcCheckTaskDefectList = qcCheckTaskDefectService.selectDefectByBelongTo(recordId);
if (!CollectionUtils.isEmpty(qcCheckTaskDefectList)) {
qcCheckTaskMarket.setDefects(qcCheckTaskDefectList);
}
return qcCheckTaskMarket;
}
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket) {
qcCheckTaskMarket.setDelFlag("0");
qcCheckTaskMarket.setTypeCode("market");
return qcCheckTaskMarketMapper.selectQcCheckTaskMarketList(qcCheckTaskMarket);
}
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket) {
String factoryCode = "";
if (StringUtils.isNotBlank(qcCheckTaskMarket.getFactoryCode())) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskMarket.getFactoryCode());
factoryCode = qcCheckTaskMarket.getFactoryCode();
} else {
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
}
qcCheckTaskMarket.setCreateTime(DateUtils.getNowDate());
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int liushuiNum = qcCheckTaskMarketMapper.getTodayMaxNum(qcCheckTaskMarket);
String liushuiStr = String.format("%04d", liushuiNum);
String createBy = SecurityUtils.getUsername();
Date nowDate = DateUtils.getNowDate();
qcCheckTaskMarket.setCheckNo(bpDD + liushuiStr);
/**取检测项**/
QcCheckTypeProject qctp = new QcCheckTypeProject();
qctp.setTypeId(qcCheckTaskMarket.getCheckType());//生产过程检验
qctp.setMaterialCode(qcCheckTaskMarket.getMaterialCode());//特性
/**qc_check_type_project**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if (CollectionUtils.isEmpty(items)) {
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskMarket.getMaterialCode());
if (group == null) {
return 0;//没有找到检测项目
}
qctp.setGroupId(group.getGroupId());//共性
items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp);
}
/**qc_check_task_detail**/
if (CollectionUtils.isEmpty(items)) {
return 0;//没有找到检测项目
}
/**qc_check_task**/
String beLongId = IdUtils.fastSimpleUUID();
qcCheckTaskMarket.setRecordId(beLongId);
qcCheckTaskMarket.setFactoryCode(factoryCode);
qcCheckTaskMarket.setCreateTime(nowDate);
qcCheckTaskMarket.setTypeCode("market");//大检验节点
/**qc_task_user start**/
if (StringUtils.isNotBlank(qcCheckTaskMarket.getCheckManName())) {
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> qcCheckTaskUserList = new ArrayList<>();
for (int i = 0; i < splitNames.length; i++) {
QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser();
qcCheckTaskUser.setCheckManName(splitNames[i]);
qcCheckTaskUser.setCheckManCode(splitCodes[i]);
qcCheckTaskUser.setCheckNo(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(beLongId);
qcCheckTaskUserList.add(qcCheckTaskUser);
}
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
} else {//上位机
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskMarket.getMaterialCode());
if (!CollectionUtils.isEmpty(users)) {
for (QcUserMaterialDTO user : users) {
user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId);
user.setCheckNo(qcCheckTaskMarket.getCheckNo());
user.setCreateBy(createBy);
user.setFactoryCode(factoryCode);
user.setCreateTime(nowDate);
}
int m = qcCheckTaskIncomeMapper.addCheckUsers(users);
logger.info("检查人新增" + m + "成功");
}
}
/** 不良品数据插入 */
if(qcCheckTaskMarket.getNoOkQuality()==null){
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.getDefects();
if (!CollectionUtils.isEmpty(defectList)) {
for (QcCheckTaskDefect defect : defectList) {
defect.setBelongTo(beLongId);
qcCheckTaskDefectService.insertQcCheckTaskDefect(defect);
noOkQuality = noOkQuality.add(defect.getNoOkQuality() == null ? new BigDecimal("0") : defect.getNoOkQuality());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
}
/**qc_sample_rule**/
QcCheckTaskIncome sampQua = new QcCheckTaskIncome();
sampQua.setCheckType(qcCheckTaskMarket.getCheckType());
sampQua.setQuality(qcCheckTaskMarket.getQuality());
String sampNum = qcSampleRuleMapper.getSampNum(sampQua);
if(StringUtils.isNotBlank(sampNum)){
qcCheckTaskMarket.setSampleQuality(new BigDecimal(sampNum));
}
/**qc_check_task**/
qcCheckTaskMarketMapper.insertQcCheckTaskMarket(qcCheckTaskMarket);
/**qc_check_task_detail**/
for (QcCheckTaskDetail item : items) {
item.setRecordId(IdUtils.fastSimpleUUID());
item.setBelongTo(beLongId);
item.setCreateTime(nowDate);
item.setCreateBy(createBy);
item.setFactoryCode(factoryCode);
item.setStatus("N");
}
return qcCheckTaskDetailMapper.addBatch(items);
}
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket) {
qcCheckTaskMarket.setUpdateTime(DateUtils.getNowDate());
/** qc_task_user**/
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> qcCheckTaskUserList = new ArrayList<>();
for (int i = 0; i < splitNames.length; i++) {
QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser();
qcCheckTaskUser.setCheckManName(splitNames[i]);
qcCheckTaskUser.setCheckManCode(splitCodes[i]);
qcCheckTaskUser.setCheckNo(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(qcCheckTaskMarket.getRecordId());
qcCheckTaskUserList.add(qcCheckTaskUser);
}
qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList);
/** 不良品数据修改 **/
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.getDefects();
String belongTo = qcCheckTaskMarket.getRecordId();
//不是空执行下一步,空不做操作
if (!CollectionUtils.isEmpty(defectList)) {
qcCheckTaskDefectService.deleteQcCheckTaskDefectByBelongTo(belongTo);
for (QcCheckTaskDefect defect : defectList) {
defect.setBelongTo(belongTo);
qcCheckTaskDefectService.insertQcCheckTaskDefect(defect);
noOkQuality = noOkQuality.add(defect.getNoOkQuality() == null ? new BigDecimal("0") : defect.getNoOkQuality());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
return qcCheckTaskMarketMapper.updateQcCheckTaskMarket(qcCheckTaskMarket);
}
/**
*
*
* @param recordIds
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds) {
return qcCheckTaskMarketMapper.deleteQcCheckTaskMarketByRecordIds(recordIds);
}
/**
*
*
* @param recordId
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcCheckTaskMarketByRecordId(String recordId) {
return qcCheckTaskMarketMapper.deleteQcCheckTaskMarketByRecordId(recordId);
}
}

@ -42,21 +42,37 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
if (!CollectionUtils.isEmpty(dtos) && dtos.size() == 2) {
QcInterface qif = new QcInterface();
qif.setYmdTypeName("okRate");
if (dtos.get(1).getQuality().equals("0")) {
qif.setQuality("100%");
} else {
BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
.subtract(new BigDecimal(dtos.get(1).getQuality())))
.multiply(new BigDecimal("100"))
.divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
qif.setQuality(okRate.toString() + "%");
}
dtos.add(qif);
}
//发布会
// List<QcInterface> dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
// if (!CollectionUtils.isEmpty(dtos) && dtos.size() == 2) {
// QcInterface qif = new QcInterface();
// qif.setYmdTypeName("okRate");
// if (dtos.get(1).getQuality().equals("0")) {
// qif.setQuality("100%");
// } else {
// BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
// .subtract(new BigDecimal(dtos.get(1).getQuality())))
// .multiply(new BigDecimal("100"))
// .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
// qif.setQuality(okRate.toString() + "%");
// }
// dtos.add(qif);
// }
/**质量看板测试开始**/
List<QcInterface> dtos = new ArrayList<>();
QcInterface qi0 = new QcInterface();
qi0.setYmdTypeName("all");
qi0.setQuality("33");
dtos.add(qi0);
QcInterface qi1 = new QcInterface();
qi1.setYmdTypeName("unOk");
qi1.setQuality("0");
dtos.add(qi1);
QcInterface qi2 = new QcInterface();
qi2.setYmdTypeName("okRate");
qi2.setQuality("100%");
dtos.add(qi2);
/**质量看板测试结束**/
return dtos;
}
@ -66,7 +82,32 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
//生产打开List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
/**质量看板测试开始**/
List<QcInterface> dtos = new ArrayList<>();
QcInterface q0 = new QcInterface();
q0.setProjectName("热贮稳定性");
q0.setQuality("1");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setProjectName("[香坯包膜]15mm爆口直径");
q1.setQuality("2");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setProjectName("其它不良现象");
q2.setQuality("5");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setProjectName("眼头插孔");
q3.setQuality("1");
dtos.add(q3);
QcInterface q4 = new QcInterface();
q4.setProjectName("厚度(一盘)");
q4.setQuality("2");
dtos.add(q4);
/**质量看板测试结束**/
return dtos;
}
@ -122,6 +163,68 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成");
dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格");
}
/**质量看板测试开始**/
QcInterface q0 = new QcInterface();
q0.setCheckNo("20240305001");
q0.setIncomeBatchNo("20270122LJ20240123BBBA0G");
q0.setOrderNo("000800000083-1");
q0.setMaterialName("10小时无烟型黑蚊香(繁体)纸盒");
q0.setQuality("19000");
q0.setUnit("个");
q0.setSupplierName("中山市粤华包装有限公司");
q0.setIncomeTime("2024-03-05 00:00:00");
q0.setCheckTime("2024-03-05 11:32:00");
q0.setCheckResult("合格");
q0.setCheckManName("马娥章");
q0.setCheckName("来料检验");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setCheckNo("20240306002");
q1.setIncomeBatchNo("20270122LJ20240123BCCA0F");
q1.setOrderNo("0008000001093-1");
q1.setMaterialName("依素猫狗(黄色)气雾盖");
q1.setQuality("5000");
q1.setUnit("个");
q1.setSupplierName("广州盛盈环保科技有限公司");
q1.setIncomeTime("2024-03-05 00:00:00");
q1.setCheckTime("2024-03-05 13:32:00");
q1.setCheckResult("合格");
q1.setCheckManName("马娥章");
q1.setCheckName("来料检验");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setCheckNo("20240307002");
q2.setIncomeBatchNo("20270122LJ20240456BCCA0D");
q2.setOrderNo("0008000001193-1");
q2.setMaterialName("King Brand蚊片(450装)纸箱");
q2.setQuality("5800");
q2.setUnit("个");
q2.setSupplierName("广州市网能产品设计有限公司");
q2.setIncomeTime("2024-03-07 00:00:00");
q2.setCheckTime("2024-03-07 13:42:00");
q2.setCheckResult("合格");
q2.setCheckManName("马娥章");
q2.setCheckName("来料检验");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setCheckNo("20240308001");
q3.setIncomeBatchNo("20270122LJ20240456BCBB0D");
q3.setOrderNo("0008000001203-1");
q3.setMaterialName("榄菊牌清香型蚊液(空白)纸箱");
q3.setQuality("7800");
q3.setUnit("个");
q3.setSupplierName("广州市网能产品设计有限公司");
q3.setCheckTime("2024-03-05 13:50:00");
q3.setIncomeTime("2024-03-07 00:00:00");
q3.setCheckResult("合格");
q3.setCheckManName("马娥章");
q3.setCheckName("来料检验");
dtos.add(q3);
/**质量看板测试结束**/
return dtos;
}
@ -158,6 +261,15 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
.divide(new BigDecimal(hz2.getQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
}
/**质量看板测试开始**/
dtoMap.put("todayPro", "3800");
dtoMap.put("todaySample", "50");
dtoMap.put("todayNoOk", "2");
dtoMap.put("todayOkRate", "96.00%");
dtoMap.put("monthPro", "83600");
dtoMap.put("monthNoOk", "30");
dtoMap.put("monthOkRate", "99.96%");
/**质量看板测试结束**/
return dtoMap;
}
@ -167,6 +279,38 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getProduceNoOkList(qcInterface);
/**质量看板测试开始**/
QcInterface q0 = new QcInterface();
q0.setProjectName("产品外观");
q0.setCheckManName("马娥章");
q0.setCheckTime("2024-03-08 16:30:00");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setProjectName("厚度(一盘)");
q1.setCheckManName("马娥章");
q1.setCheckTime("2024-03-08 15:35:00");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setProjectName("其它不良现象");
q2.setCheckManName("马娥章");
q2.setCheckTime("2024-03-08 15:05:00");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setProjectName("灌装量/净含量/喷药量");
q3.setCheckManName("马娥章");
q3.setCheckTime("2024-03-07 16:00:00");
dtos.add(q3);
QcInterface q4 = new QcInterface();
q4.setProjectName("是否符合签样及材料清单要求,堆板日期朝外");
q4.setCheckManName("马娥章");
q4.setCheckTime("2024-03-05 11:00:00");
dtos.add(q4);
QcInterface q5 = new QcInterface();
q5.setProjectName("其它不良现象");
q5.setCheckManName("马娥章");
q5.setCheckTime("2024-03-05 16:00:00");
dtos.add(q5);
/**质量看板测试结束**/
return dtos;
}
@ -188,7 +332,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
for (int mh = 1; mh <= nowMonth; mh++) {
String yyyymm = nowYMDs[1] + "-" + String.format("%02d", mh);
monthNames.add(yyyymm);
if (!CollectionUtils.isEmpty(noOkHzs)) {
if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) {
monthData.add(noOkHzs.get(yyyymm).getNoOkQuality());
} else {
monthData.add("0");
@ -197,7 +341,18 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dtoMap.put("month", monthNames);
dtoMap.put("monthData", monthData);
/**质量看板测试开始**/
List<String> monthNames0 = new ArrayList<>();
monthNames0.add("2024-01");monthNames0.add("2024-02");monthNames0.add("2024-03");monthNames0.add("2024-04");
monthNames0.add("2024-05");monthNames0.add("2024-06");monthNames0.add("2024-07");monthNames0.add("2024-08");
monthNames0.add("2024-09");monthNames0.add("2024-10");monthNames0.add("2024-11");monthNames0.add("2024-12");
List<String> monthData0 = new ArrayList<>();
monthData0.add("5");monthData0.add("4");monthData0.add("7");monthData0.add("10");monthData0.add("5");
monthData0.add("4");monthData0.add("9");monthData0.add("12");monthData0.add("3");monthData0.add("7");
monthData0.add("5");monthData0.add("2");
dtoMap.put("month", monthNames0);
dtoMap.put("monthData", monthData0);
/**质量看板测试结束**/
return dtoMap;
}
@ -218,7 +373,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
List<String> xAxisDatas = getDays(startTime, endTime);
dto.setDayStr(xAxisDatas);//
//通过报工获取到真实参与生产的线体
List<QcProCheck> lines = qcInterfaceMapper.getLineNames();
List<QcProCheck> lines = qcInterfaceMapper.getLineNames(startTime.substring(0,7));
if (CollectionUtils.isEmpty(lines)) {
return null;
}
@ -269,49 +424,64 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
}
lastYM.setDayStr(daystr0);
nowYM.setDayStr(daystr1);
//生产打开
// qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
//
// Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
// if (noOkNum == null) {
// return null;
// }
//
// List<String> dataBar0 = new ArrayList<>();//不合规数量
// List<String> dataLine0 = new ArrayList<>();//不合格率
// for (String day0 : daystr0) {
// QcInterface last = noOkNum.get(day0);
// if (last != null) {
// dataBar0.add(last.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine0.add(norate0.toString());
// } else {
// dataBar0.add("0");
// dataLine0.add("0.00");
// }
// }
//
// List<String> dataBar1 = new ArrayList<>();//不合规数量
// List<String> dataLine1 = new ArrayList<>();//不合格率
// for (String day1 : daystr1) {
// QcInterface now = noOkNum.get(day1);
// if (now != null) {
// dataBar1.add(now.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine1.add(norate0.toString());
// } else {
// dataBar1.add("0");
// dataLine1.add("0.00");
// }
// }
/**质量看板测试开始**/
List<String> dataBar0 = new ArrayList<>();//不合规数量
List<String> dataLine0 = new ArrayList<>();//不合格率
List<String> dataBar1 = new ArrayList<>();//不合规数量
List<String> dataLine1 = new ArrayList<>();//不合格率
dataBar0.add("4");dataBar0.add("9");dataBar0.add("7");dataBar0.add("13");dataBar0.add("11");dataBar0.add("7");
dataBar0.add("8");dataBar0.add("4");dataBar0.add("5");dataBar0.add("2");dataBar0.add("10");dataBar0.add("6");
dataBar1.add("3");dataBar1.add("14");dataBar1.add("17");dataBar1.add("3");dataBar1.add("9");dataBar1.add("3");
dataBar1.add("8");dataBar1.add("5");dataBar1.add("4");dataBar1.add("2");dataBar1.add("9");dataBar1.add("5");
qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
dataLine0.add("1");dataLine0.add("2");dataLine0.add("0.5");dataLine0.add("0.9");dataLine0.add("1");dataLine0.add("1.9");
dataLine0.add("1.1");dataLine0.add("1");dataLine0.add("0.7");dataLine0.add("0.9");dataLine0.add("1.5");dataLine0.add("1.3");
dataLine1.add("0.5");dataLine1.add("1.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("0.7");dataLine1.add("1.9");
dataLine1.add("1.4");dataLine1.add("0.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("1.3");dataLine1.add("1.2");
/**质量看板测试结束**/
Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
if (noOkNum == null) {
return null;
}
lastYM.setDataBarArrays(dataBar0);
lastYM.setDataLineArrays(dataLine0);
List<String> data0 = new ArrayList<>();//不合规数量
List<String> dataStr0 = new ArrayList<>();//不合格率
for (String day0 : daystr0) {
QcInterface last = noOkNum.get(day0);
if (last != null) {
data0.add(last.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
dataStr0.add(norate0.toString());
} else {
data0.add("0");
dataStr0.add("0.00");
}
}
List<String> data1 = new ArrayList<>();//不合规数量
List<String> dataStr1 = new ArrayList<>();//不合格率
for (String day1 : daystr1) {
QcInterface now = noOkNum.get(day1);
if (now != null) {
data1.add(now.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
dataStr1.add(norate0.toString());
} else {
data1.add("0");
dataStr1.add("0.00");
}
}
lastYM.setData(data0);
lastYM.setDayStr(dataStr0);
nowYM.setData(data1);
nowYM.setDayStr(dataStr1);
nowYM.setDataBarArrays(dataBar1);
nowYM.setDataLineArrays(dataLine1);
dtos.add(lastYM);
dtos.add(nowYM);

@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.quality.mapper.QcCheckTaskMarketMapper">
<resultMap type="QcCheckTaskMarket" id="QcCheckTaskMarketResult">
<result property="recordId" column="record_id"/>
<result property="checkNo" column="check_no"/>
<result property="incomeBatchNo" column="income_batch_no"/>
<result property="orderNo" column="order_no"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="quality" column="quality"/>
<result property="unit" column="unit"/>
<result property="supplierCode" column="supplier_code"/>
<result property="supplierName" column="supplier_name"/>
<result property="incomeTime" column="income_time"/>
<result property="checkLoc" column="check_loc"/>
<result property="checkStatus" column="check_status"/>
<result property="checkManCode" column="check_man_code"/>
<result property="checkManName" column="check_man_name"/>
<result property="checkTime" column="check_time"/>
<result property="checkResult" column="check_result"/>
<result property="status" column="status"/>
<result property="attr1" column="attr1"/>
<result property="attr2" column="attr2"/>
<result property="attr3" column="attr3"/>
<result property="attr4" column="attr4"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="delFlag" column="del_flag"/>
<result property="checkType" column="check_type"/>
<result property="noOkQuality" column="noOk_quality"/>
<result property="sampleQuality" column="sample_quality"/>
<result property="aNoOkquality" column="aNoOkquality"/>
<result property="bNoOkquality" column="bNoOkquality"/>
<result property="cNoOkquality" column="cNoOkquality"/>
<result property="typeCode" column="type_code"/>
<result property="orderType" column="order_type"/>
</resultMap>
<sql id="selectQcCheckTaskMarketVo">
select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit, supplier_code,
supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result,
status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag,
check_type, noOk_quality, sample_quality, aNoOkquality, bNoOkquality, cNoOkquality, type_code, order_type
from qc_check_task
</sql>
<select id="selectQcCheckTaskMarketList" parameterType="QcCheckTaskMarket"
resultMap="QcCheckTaskMarketResult">
select qct.record_id, qct.check_no, qct.income_batch_no,
qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit,
qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status,
qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status,
qct.create_by,qct.create_time, qct.update_by, qct.update_time,
qct.check_type,qct.sample_quality,qct.noOk_quality,
q.type_code
from qc_check_task qct
left join qc_check_type q on q.id = qct.check_type
<where>
<if test="checkNo != null and checkNo != ''">and qct.check_no = #{checkNo}</if>
<if test="incomeBatchNo != null and incomeBatchNo != ''">and qct.income_batch_no = #{incomeBatchNo}</if>
<if test="orderNo != null and orderNo != ''">and qct.order_no = #{orderNo}</if>
<if test="materialCode != null and materialCode != ''">and qct.material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''">and qct.material_name like concat('%',
#{materialName}, '%')
</if>
<if test="supplierCode != null and supplierCode != ''">and qct.supplier_code = #{supplierCode}</if>
<if test="supplierName != null and supplierName != ''">and qct.supplier_name like concat('%',
#{supplierName}, '%')
</if>
<if test="incomeTime != null ">and qct.income_time = #{incomeTime}</if>
<if test="checkLoc != null and checkLoc != ''">and qct.check_loc = #{checkLoc}</if>
<if test="checkStatus != null and checkStatus != ''">and qct.check_status = #{checkStatus}</if>
<if test="checkManCode != null and checkManCode != ''">and qct.check_man_code = #{checkManCode}</if>
<if test="checkManName != null and checkManName != ''">and qct.check_man_name like concat('%',
#{checkManName}, '%')
</if>
<if test="checkResult != null and checkResult != ''">and qct.check_result = #{checkResult}</if>
<if test="status != null and status != ''">and qct.status = #{status}</if>
<if test="delFlag != null and delFlag != ''">and qct.del_flag = #{delFlag}</if>
<if test="factoryCode != null and factoryCode != ''">and qct.factory_code = #{factoryCode}</if>
<if test="incomeTimeStart != null ">and CONVERT(varchar(30),qct.income_time, 120) >= #{incomeTimeStart}</if>
<if test="incomeTimeEnd != null ">and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120)</if>
<if test="checkTimeStart != null ">and CONVERT(varchar(30),qct.check_time, 120) >= #{checkTimeStart}</if>
<if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.check_time, 120)</if>
<if test="checkType != null ">and qct.check_type = #{checkType}</if>
<if test="typeCode != null ">and q.type_code = #{typeCode}</if>
</where>
</select>
<select id="selectQcCheckTaskMarketByRecordId" parameterType="String" resultMap="QcCheckTaskMarketResult">
<include refid="selectQcCheckTaskMarketVo"/>
where record_id = #{recordId}
</select>
<insert id="insertQcCheckTaskMarket" parameterType="QcCheckTaskMarket">
insert into qc_check_task
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
<if test="checkNo != null">check_no,</if>
<if test="incomeBatchNo != null">income_batch_no,</if>
<if test="orderNo != null">order_no,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="quality != null">quality,</if>
<if test="unit != null">unit,</if>
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="incomeTime != null">income_time,</if>
<if test="checkLoc != null">check_loc,</if>
<if test="checkStatus != null">check_status,</if>
<if test="checkManCode != null">check_man_code,</if>
<if test="checkManName != null">check_man_name,</if>
<if test="checkTime != null">check_time,</if>
<if test="checkResult != null">check_result,</if>
<if test="status != null">status,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="checkType != null">check_type,</if>
<if test="noOkQuality != null">noOk_quality,</if>
<if test="sampleQuality != null">sample_quality,</if>
<if test="aNoOkquality != null">aNoOkquality,</if>
<if test="bNoOkquality != null">bNoOkquality,</if>
<if test="cNoOkquality != null">cNoOkquality,</if>
<if test="typeCode != null">type_code,</if>
<if test="orderType != null">order_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordId != null">#{recordId},</if>
<if test="checkNo != null">#{checkNo},</if>
<if test="incomeBatchNo != null">#{incomeBatchNo},</if>
<if test="orderNo != null">#{orderNo},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="quality != null">#{quality},</if>
<if test="unit != null">#{unit},</if>
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="incomeTime != null">#{incomeTime},</if>
<if test="checkLoc != null">#{checkLoc},</if>
<if test="checkStatus != null">#{checkStatus},</if>
<if test="checkManCode != null">#{checkManCode},</if>
<if test="checkManName != null">#{checkManName},</if>
<if test="checkTime != null">#{checkTime},</if>
<if test="checkResult != null">#{checkResult},</if>
<if test="status != null">#{status},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="checkType != null">#{checkType},</if>
<if test="noOkQuality != null">#{noOkQuality},</if>
<if test="sampleQuality != null">#{sampleQuality},</if>
<if test="aNoOkquality != null">#{aNoOkquality},</if>
<if test="bNoOkquality != null">#{bNoOkquality},</if>
<if test="cNoOkquality != null">#{cNoOkquality},</if>
<if test="typeCode != null">#{typeCode},</if>
<if test="orderType != null">#{orderType},</if>
</trim>
</insert>
<update id="updateQcCheckTaskMarket" parameterType="QcCheckTaskMarket">
update qc_check_task
<trim prefix="SET" suffixOverrides=",">
<if test="checkNo != null">check_no = #{checkNo},</if>
<if test="incomeBatchNo != null">income_batch_no = #{incomeBatchNo},</if>
<if test="orderNo != null">order_no = #{orderNo},</if>
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="quality != null">quality = #{quality},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="supplierCode != null">supplier_code = #{supplierCode},</if>
<if test="supplierName != null">supplier_name = #{supplierName},</if>
<if test="incomeTime != null">income_time = #{incomeTime},</if>
<if test="checkLoc != null">check_loc = #{checkLoc},</if>
<if test="checkStatus != null">check_status = #{checkStatus},</if>
<if test="checkManCode != null">check_man_code = #{checkManCode},</if>
<if test="checkManName != null">check_man_name = #{checkManName},</if>
<if test="checkTime != null">check_time = #{checkTime},</if>
<if test="checkResult != null">check_result = #{checkResult},</if>
<if test="status != null">status = #{status},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">factory_code = #{factoryCode},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="checkType != null">check_type = #{checkType},</if>
<if test="noOkQuality != null">noOk_quality = #{noOkQuality},</if>
<if test="sampleQuality != null">sample_quality = #{sampleQuality},</if>
<if test="aNoOkquality != null">aNoOkquality = #{aNoOkquality},</if>
<if test="bNoOkquality != null">bNoOkquality = #{bNoOkquality},</if>
<if test="cNoOkquality != null">cNoOkquality = #{cNoOkquality},</if>
<if test="typeCode != null">type_code = #{typeCode},</if>
<if test="orderType != null">order_type = #{orderType},</if>
</trim>
where record_id = #{recordId}
</update>
<delete id="deleteQcCheckTaskMarketByRecordId" parameterType="String">
delete from qc_check_task where record_id = #{recordId}
</delete>
<delete id="deleteQcCheckTaskMarketByRecordIds" parameterType="String">
delete from qc_check_task where record_id in
<foreach item="recordId" collection="array" open="(" separator="," close=")">
#{recordId}
</foreach>
</delete>
<select id="getTodayMaxNum" resultType="java.lang.Integer">
select count(0)+1
from qc_check_task
where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
</select>
</mapper>

@ -34,7 +34,7 @@
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
and del_flag = '0'
</where>
order by create_time
order by type_code
</select>
<select id="selectQcCheckTypeById" parameterType="String" resultMap="QcCheckTypeResult">

@ -138,6 +138,7 @@
qct.unit,
qct.supplier_name supplierName,
qct.income_time incomeTime,
qct.check_time checkTime,
qct.check_result checkResult,
qct.check_man_name checkManName,
qc.check_name checkName

@ -94,12 +94,5 @@ public class WmsOdsWhiteEmbryoInController extends BaseController {
return toAjax(wmsOdsWhiteEmbryoInService.deleteWmsOdsWhiteEmbryoInByIDs(IDs));
}
/**
*
*/
@PostMapping("/Warehousing")
public AjaxResult addWarehousing(@RequestBody List<WmsOdsWhiteEmbryoIn> wmsOdsWhiteEmbryoIns) {
return toAjax(wmsOdsWhiteEmbryoInService.insertWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIns));
}
}

@ -40,6 +40,11 @@ public class WmsProductPutController extends BaseController {
public TableDataInfo list(WmsProductPut wmsProductPut) {
startPage();
List<WmsProductPut> list = wmsProductPutService.selectWmsProductPutList(wmsProductPut);
for(WmsProductPut wmsProductPut1:list){
String ProductCode= wmsProductPut1.getProductCode();
ProductCode= ProductCode.substring(7);
wmsProductPut1.setProductCode(ProductCode);
}
return getDataTable(list);
}

@ -9,17 +9,16 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType;
import com.op.wms.domain.*;
import com.op.wms.service.IBaseWarehouseService;
import com.op.wms.service.IOdsProcureOrderService;
import com.op.wms.service.IWmsProductPutService;
import com.op.wms.service.IWmsToWCSmissionService;
import com.op.wms.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static com.op.common.core.web.domain.AjaxResult.success;
/*
wms/WmsToWCSmission
*/
@RestController
@RequestMapping("/WmsToWCSmission")
public class WmsToWCSmissionController {
@ -31,7 +30,8 @@ public class WmsToWCSmissionController {
private IOdsProcureOrderService odsProcureOrderService;
@Autowired
private IBaseWarehouseService baseWarehouseService;
@Autowired
private IOdsWhiteEmbryoService iOdsWhiteEmbryoService;
/**
* ---
*
@ -235,4 +235,70 @@ public class WmsToWCSmissionController {
public AjaxResult WmsProductPutByWorkOrderConfirm(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderConfirm(wmsProductPut));
}
/**
*
*/
@PostMapping("/selectWmsOdsWhiteEmbryoInhAnd")
public AjaxResult selectWmsOdsWhiteEmbryoInhAnd(@RequestBody WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns) {
return success(wmsProductPutService.selectWmsOdsWhiteEmbryoInhAnd(wmsOdsWhiteEmbryoIns));
}
/**
*
*/
@PostMapping("/addtWmsOdsWhiteEmbryoInhAnd")
public AjaxResult addtWmsOdsWhiteEmbryoInhAnd(@RequestBody WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn) {
return success(wmsProductPutService.addtWmsOdsWhiteEmbryoInhAnd(wmsOdsWhiteEmbryoIn));
}
//**
/**
*
*
* @param odsProcureOrder
* @return
*/
@PostMapping("/selectWhiteEmbryoDeliveryOrder")
public AjaxResult selectWhiteEmbryoDeliveryOrder(@RequestBody OdsProcureOutOrder odsProcureOrder) {
// OdsProcureOutOrder orderList = odsProcureOrderService.PurchaseOrderOutboundPda(odsProcureOrder);
OdsProcureOutOrder orderList1= iOdsWhiteEmbryoService.selectWhiteEmbryoDeliveryOrder(odsProcureOrder);
return success(orderList1);
}
/**
* --
*
* @param wmsOdsEmStorageNewsSn
* @return
*/
@PostMapping("/selectQueryTrayInfor")
public AjaxResult selectQueryTrayInfor(@RequestBody WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn) {
// OdsProcureOutOrder orderList = odsProcureOrderService.PurchaseOrderOutboundPda(odsProcureOrder);
WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn1= iOdsWhiteEmbryoService.selectQueryTrayInfor(wmsOdsEmStorageNewsSn);
return success(wmsOdsEmStorageNewsSn1);
}
/**
* --
*
* @param odsWhiteEmbryo
* @return
*/
@PostMapping("/WhiteEmbryoOutbound")
public AjaxResult WhiteEmbryoOutbound(@RequestBody OdsWhiteEmbryo odsWhiteEmbryo) {
// OdsProcureOutOrder orderList = odsProcureOrderService.PurchaseOrderOutboundPda(odsProcureOrder);
String result= iOdsWhiteEmbryoService.WhiteEmbryoOutbound(odsWhiteEmbryo);
return success(result);
}
/**
* ----
*
* @param wmsOdsEmStorageNewsSn
* @return
*/
@PostMapping("/WhiteWarehouseDump")
public AjaxResult WhiteWarehouseDump(@RequestBody WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn) {
// OdsProcureOutOrder orderList = odsProcureOrderService.PurchaseOrderOutboundPda(odsProcureOrder);
String result= iOdsWhiteEmbryoService.WhiteWarehouseDump(wmsOdsEmStorageNewsSn);
return success(result);
}
}

@ -13,7 +13,7 @@ import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
/**
* ods_procure_out_order
* ods_procure_out_order
*
* @author Open Platform
* @date 2023-07-06

@ -2,6 +2,7 @@ package com.op.wms.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -64,7 +65,7 @@ public class OdsWhiteEmbryo extends BaseEntity {
*
*/
@Excel(name = "单位")
private String Unit;
private String unit;
/**
*
@ -200,6 +201,8 @@ public class OdsWhiteEmbryo extends BaseEntity {
@Excel(name = "可用标识")
private String Active;
/**
*
*/
@ -211,6 +214,16 @@ public class OdsWhiteEmbryo extends BaseEntity {
*/
@Excel(name = "企业编码")
private String enterpriseCode;
//出库的托盘信息
private List<WmsOdsEmStorageNewsSn> wmsOdsEmStorageNewsSns;
public List<WmsOdsEmStorageNewsSn> getWmsOdsEmStorageNewsSns() {
return wmsOdsEmStorageNewsSns;
}
public void setWmsOdsEmStorageNewsSns(List<WmsOdsEmStorageNewsSn> wmsOdsEmStorageNewsSns) {
this.wmsOdsEmStorageNewsSns = wmsOdsEmStorageNewsSns;
}
public void setSiteCode(String siteCode) {
this.siteCode = siteCode;
@ -269,11 +282,11 @@ public class OdsWhiteEmbryo extends BaseEntity {
}
public void setUnit(String Unit) {
this.Unit = Unit;
this.unit = Unit;
}
public String getUnit() {
return Unit;
return unit;
}
public void setRealityNumber(BigDecimal realityNumber) {

@ -0,0 +1,594 @@
package com.op.wms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.TreeEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* pro_order_workorder
*s
* @author Open Platform
* @date 2023-07-18
*/
public class ProOrderWorkorder extends TreeEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String workorderId;
/**
*
*/
@Excel(name = "工单编码")
private String workorderCode;
/**
*
*/
@Excel(name = "sap工单编码")
private String workorderCodeSap;
public String getWorkorderCodeSap() {
return workorderCodeSap;
}
public void setWorkorderCodeSap(String workorderCodeSap) {
this.workorderCodeSap = workorderCodeSap;
}
/**
*
*/
@Excel(name = "工单名称")
private String workorderName;
/**
* id
*/
@Excel(name = "订单id")
private String orderId;
/**
*
*/
@Excel(name = "订单编码")
private String orderCode;
/**
* ID
*/
@Excel(name = "产品ID")
private String productId;
/**
*
*/
@Excel(name = "产品编号")
private String productCode;
/**
*
*/
@Excel(name = "产品名称")
private String productName;
/**
*
*/
@Excel(name = "规格型号")
private String productSpc;
/**
*
*/
@Excel(name = "单位")
private String unit;
/**
*
*/
@Excel(name = "已生产数量")
private Long quantityProduced;
/**
*
*/
@Excel(name = "已拆分数量")
private Long quantitySplit;
/**
*
*/
@Excel(name = "工艺编码")
private String routeCode;
/**
* 线
*/
@Excel(name = "产线编码")
private String prodLineCode;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date productDate;
// 工单生产日期开始
private String productDateStart;
// 工单生产日期结束
private String productDateEnd;
/**
*
*/
@Excel(name = "班次")
private String shiftId;
/**
*
*/
@Excel(name = "父工单")
private String parentOrder;
/**
* ID
*/
@Excel(name = "所有父节点ID")
private String ancestors;
/**
*
*/
@Excel(name = "单据状态")
private String status;
/**
* 1
*/
@Excel(name = "预留字段1")
private String attr1;
/**
* 2
*/
@Excel(name = "预留字段2")
private String attr2;
/**
* 3
*/
@Excel(name = "预留字段3")
private String attr3;
/**
* 4
*/
@Excel(name = "预留字段4")
private String attr4;
/**
*
*/
@Excel(name = "产品类型")
private String prodType;
/**
* 1 0
*/
@Excel(name = "是否为底层节点")
private Integer endFlag;
public Integer getEndFlag() {
return endFlag;
}
public void setEndFlag(Integer endFlag) {
this.endFlag = endFlag;
}
private List<ProOrderWorkorderBatch> proOrderWorkorderBatchList;
public List<ProOrderWorkorderBatch> getProOrderWorkorderBatchList() {
return proOrderWorkorderBatchList;
}
public void setProOrderWorkorderBatchList(List<ProOrderWorkorderBatch> proOrderWorkorderBatchList) {
this.proOrderWorkorderBatchList = proOrderWorkorderBatchList;
}
/**
*
*/
private String shiftDesc;
// 料罐id湿料计划模块使用
private Integer bucketId;
// 料罐编码(湿料计划模块使用)
private String bucketCode;
// 物料id湿料计划模块使用
private Integer materialId;
// 物料编码(湿料计划模块使用)
private String materialCode;
// 物料名称(湿料计划模块使用)
private String materialName;
// 计划日期(湿料计划模块使用)
private Date planTime;
// 料罐名称(湿料计划模块使用)
private String bucketName;
private String batchCode;
private String batchId;
public String getBatchCode() {
return batchCode;
}
public void setBatchCode(String batchCode) {
this.batchCode = batchCode;
}
public String getBatchId() {
return batchId;
}
public void setBatchId(String batchId) {
this.batchId = batchId;
}
public String getBucketName() {
return bucketName;
}
public void setBucketName(String bucketName) {
this.bucketName = bucketName;
}
public Integer getBucketId() {
return bucketId;
}
public void setBucketId(Integer bucketId) {
this.bucketId = bucketId;
}
public String getBucketCode() {
return bucketCode;
}
public void setBucketCode(String bucketCode) {
this.bucketCode = bucketCode;
}
public Integer getMaterialId() {
return materialId;
}
public void setMaterialId(Integer materialId) {
this.materialId = materialId;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public Date getPlanTime() {
return planTime;
}
public void setPlanTime(Date planTime) {
this.planTime = planTime;
}
public String getShiftDesc() {
return shiftDesc;
}
public void setShiftDesc(String shiftDesc) {
this.shiftDesc = shiftDesc;
}
/**
*
*/
private List<StringBuilder> batchCodeList;
public List<StringBuilder> getBatchCodeList() {
return batchCodeList;
}
public void setBatchCodeList(List<StringBuilder> batchCodeList) {
this.batchCodeList = batchCodeList;
}
/**
* $column.columnComment
*/
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String factoryCode;
public void setWorkorderId(String workorderId) {
this.workorderId = workorderId;
}
public String getWorkorderId() {
return workorderId;
}
public void setWorkorderCode(String workorderCode) {
this.workorderCode = workorderCode;
}
public String getWorkorderCode() {
return workorderCode;
}
public void setWorkorderName(String workorderName) {
this.workorderName = workorderName;
}
public String getWorkorderName() {
return workorderName;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getOrderId() {
return orderId;
}
public void setOrderCode(String orderCode) {
this.orderCode = orderCode;
}
public String getOrderCode() {
return orderCode;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getProductId() {
return productId;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
public String getProductCode() {
return productCode;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductName() {
return productName;
}
public void setProductSpc(String productSpc) {
this.productSpc = productSpc;
}
public String getProductSpc() {
return productSpc;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getUnit() {
return unit;
}
public void setQuantityProduced(Long quantityProduced) {
this.quantityProduced = quantityProduced;
}
public Long getQuantityProduced() {
return quantityProduced;
}
public void setQuantitySplit(Long quantitySplit) {
this.quantitySplit = quantitySplit;
}
public Long getQuantitySplit() {
return quantitySplit;
}
public void setRouteCode(String routeCode) {
this.routeCode = routeCode;
}
public String getRouteCode() {
return routeCode;
}
public void setProdLineCode(String prodLineCode) {
this.prodLineCode = prodLineCode;
}
public String getProdLineCode() {
return prodLineCode;
}
public void setProductDate(Date productDate) {
this.productDate = productDate;
}
public Date getProductDate() {
return productDate;
}
public void setShiftId(String shiftId) {
this.shiftId = shiftId;
}
public String getShiftId() {
return shiftId;
}
public void setParentOrder(String parentOrder) {
this.parentOrder = parentOrder;
}
public String getParentOrder() {
return parentOrder;
}
public void setAncestors(String ancestors) {
this.ancestors = ancestors;
}
public String getAncestors() {
return ancestors;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr1() {
return attr1;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public String getAttr2() {
return attr2;
}
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
public String getAttr3() {
return attr3;
}
public void setAttr4(String attr4) {
this.attr4 = attr4;
}
public String getAttr4() {
return attr4;
}
public void setProdType(String prodType) {
this.prodType = prodType;
}
public String getProdType() {
return prodType;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getFactoryCode() {
return factoryCode;
}
public String getProductDateStart() {
return productDateStart;
}
public void setProductDateStart(String productDateStart) {
this.productDateStart = productDateStart;
}
public String getProductDateEnd() {
return productDateEnd;
}
public void setProductDateEnd(String productDateEnd) {
this.productDateEnd = productDateEnd;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("workorderId", getWorkorderId())
.append("workorderCode", getWorkorderCode())
.append("workorderName", getWorkorderName())
.append("orderId", getOrderId())
.append("orderCode", getOrderCode())
.append("productId", getProductId())
.append("productCode", getProductCode())
.append("productName", getProductName())
.append("productSpc", getProductSpc())
.append("unit", getUnit())
.append("quantityProduced", getQuantityProduced())
.append("quantitySplit", getQuantitySplit())
.append("routeCode", getRouteCode())
.append("prodLineCode", getProdLineCode())
.append("productDate", getProductDate())
.append("shiftId", getShiftId())
.append("parentOrder", getParentOrder())
.append("ancestors", getAncestors())
.append("status", getStatus())
.append("remark", getRemark())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("prodType", getProdType())
.append("factoryCode", getFactoryCode())
.append("batchCodeList", getBatchCodeList())
.append("endFlag", getEndFlag())
.append("shiftDesc", getShiftDesc())
.append("bucketId", getBucketId())
.append("bucketCode", getBucketCode())
.append("materialId", getMaterialId())
.append("materialCode", getMaterialCode())
.append("materialName", getMaterialName())
.append("planTime", getPlanTime())
.append("bucketName", getBucketName())
.toString();
}
}

@ -0,0 +1,210 @@
package com.op.wms.domain;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
/**
* pro_order_workorder_batch
*s
* @author Open Platform
* @date 2023-07-18
*/
public class ProOrderWorkorderBatch extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@Excel(name = "批次ID")
private String batchId;
/**
* ID
*/
private String workorderId;
/**
*
*/
@Excel(name = "批次号")
private String batchCode;
/**
*
*/
@Excel(name = "批次数量")
private Long batchQuantity;
@Excel(name = "已入数量")
private Long includedQuantity;
private String realityNumber;
public String getRealityNumber() {
return realityNumber;
}
public void setRealityNumber(String realityNumber) {
this.realityNumber = realityNumber;
}
public Long getIncludedQuantity() {
return includedQuantity;
}
public void setIncludedQuantity(Long includedQuantity) {
this.includedQuantity = includedQuantity;
}
/**
*
*/
@Excel(name = "单据状态")
private String status;
/**
* 1
*/
@Excel(name = "预留字段1")
private String attr1;
/**
* 2
*/
@Excel(name = "预留字段2")
private String attr2;
/**
* 3
*/
@Excel(name = "预留字段3")
private String attr3;
/**
* 4
*/
@Excel(name = "预留字段4")
private String attr4;
/**
*
*/
@Excel(name = "产品类型")
private String prodType;
/**
* $column.columnComment
*/
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String factoryCode;
public void setBatchId(String batchId) {
this.batchId = batchId;
}
public String getBatchId() {
return batchId;
}
public void setWorkorderId(String workorderId) {
this.workorderId = workorderId;
}
public String getWorkorderId() {
return workorderId;
}
public void setBatchCode(String batchCode) {
this.batchCode = batchCode;
}
public String getBatchCode() {
return batchCode;
}
public void setBatchQuantity(Long batchQuantity) {
this.batchQuantity = batchQuantity;
}
public Long getBatchQuantity() {
return batchQuantity;
}
public void setStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr1() {
return attr1;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public String getAttr2() {
return attr2;
}
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
public String getAttr3() {
return attr3;
}
public void setAttr4(String attr4) {
this.attr4 = attr4;
}
public String getAttr4() {
return attr4;
}
public void setProdType(String prodType) {
this.prodType = prodType;
}
public String getProdType() {
return prodType;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getFactoryCode() {
return factoryCode;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("batchId", getBatchId())
.append("workorderId", getWorkorderId())
.append("batchCode", getBatchCode())
.append("batchQuantity", getBatchQuantity())
.append("status", getStatus())
.append("remark", getRemark())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("prodType", getProdType())
.append("factoryCode", getFactoryCode())
.toString();
}
}

@ -41,6 +41,22 @@ public class WmsOdsEmStorageNewsSn extends BaseEntity {
@Excel(name = "库位编码")
private String wlCode;
/**
*
*/
@Excel(name = "目标库位编码")
private String tOwlCode;
public String gettOwlCode() {
return tOwlCode;
}
public void settOwlCode(String tOwlCode) {
this.tOwlCode = tOwlCode;
}
/**
*
*/
@ -80,7 +96,7 @@ public class WmsOdsEmStorageNewsSn extends BaseEntity {
/**
*
*/
@Excel(name = "条码")
@Excel(name = "批次")
private String barCode;
/**

@ -2,6 +2,7 @@ package com.op.wms.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -64,7 +65,7 @@ public class WmsOdsWhiteEmbryoIn extends BaseEntity {
*
*/
@Excel(name = "单位")
private String Unit;
private String unit;
/**
*
@ -208,6 +209,17 @@ public class WmsOdsWhiteEmbryoIn extends BaseEntity {
private String Remark;
private List<WmsWhiteBilletInfor> wmsWhiteBilletInforList;
public List<WmsWhiteBilletInfor> getWmsWhiteBilletInforList() {
return wmsWhiteBilletInforList;
}
public void setWmsWhiteBilletInforList(List<WmsWhiteBilletInfor> wmsWhiteBilletInforList) {
this.wmsWhiteBilletInforList = wmsWhiteBilletInforList;
}
public String getRemark() {
return Remark;
}
@ -279,11 +291,11 @@ public class WmsOdsWhiteEmbryoIn extends BaseEntity {
}
public void setUnit(String Unit) {
this.Unit = Unit;
this.unit = Unit;
}
public String getUnit() {
return Unit;
return unit;
}
public void setRealityNumber(BigDecimal realityNumber) {
@ -488,7 +500,7 @@ public class WmsOdsWhiteEmbryoIn extends BaseEntity {
.append("materialDesc", getMaterialDesc())
.append("planDate", getPlanDate())
.append("planNumber", getPlanNumber())
.append("Unit", getUnit())
.append("unit", getUnit())
.append("realityNumber", getRealityNumber())
.append("orderStatus", getOrderStatus())
.append("userDefined1", getUserDefined1())

@ -0,0 +1,60 @@
package com.op.wms.domain;
import com.op.common.core.annotation.Excel;
/**
*
*/
public class WmsWhiteBilletInfor {
/**
*
*/
@Excel(name = "批次号")
private String batchCode;
/**
*
*/
@Excel(name = "托盘数量")
private String batchQuantity;
/**
*
*/
@Excel(name = "托盘号")
private String sn;
@Excel(name = "库位")
private String wlCode;
public String getBatchCode() {
return batchCode;
}
public void setBatchCode(String batchCode) {
this.batchCode = batchCode;
}
public String getBatchQuantity() {
return batchQuantity;
}
public void setBatchQuantity(String batchQuantity) {
this.batchQuantity = batchQuantity;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getWlCode() {
return wlCode;
}
public void setWlCode(String wlCode) {
this.wlCode = wlCode;
}
}

@ -84,4 +84,6 @@ public interface OdsProcureOutOrderMapper {
List<String> selectOdsProcureOutOrderListZUKENX(OdsProcureOutOrder order);
String selectMachineCode(@Param("order")OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectmesPrepareDetailWhite(OdsProcureOutOrder odsProcureOutOrder);
}

@ -58,4 +58,6 @@ public interface OdsWhiteEmbryoMapper {
* @return
*/
public int deleteOdsWhiteEmbryoByIDs(String[] IDs);
OdsWhiteEmbryo selectOdsWhiteEmbryoByOrderCode(OdsWhiteEmbryo odsWhiteEmbryo);
}

@ -3,6 +3,7 @@ package com.op.wms.mapper;
import java.util.List;
import com.op.wms.domain.WmsOdsEmStorageNews;
import com.op.wms.domain.WmsOdsEmStorageNewsSn;
/**
* Mapper
@ -60,4 +61,6 @@ public interface WmsOdsEmStorageNewsMapper {
public int deleteWmsOdsEmStorageNewsByStorageIds(String[] storageIds);
void updateAdd(WmsOdsEmStorageNews wmsOdsEmStorageNews);
WmsOdsEmStorageNews selectWmsOdsEmStorageNewsByWlCode(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn);
}

@ -58,4 +58,8 @@ public interface WmsOdsEmStorageNewsSnMapper {
* @return
*/
public int deleteWmsOdsEmStorageNewsSnByEmOrderInSnIds(Long[] emOrderInSnIds);
WmsOdsEmStorageNewsSn selectWmsOdsEmStorageNewsSnBysn(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn);
WmsOdsEmStorageNewsSn selectWmsOdsEmStorageNewsSnBysnAndmaterialCode(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn);
}

@ -2,7 +2,10 @@ package com.op.wms.mapper;
import java.util.List;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.ProOrderWorkorderBatch;
import com.op.wms.domain.WmsOdsWhiteEmbryoIn;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -62,4 +65,12 @@ public interface WmsOdsWhiteEmbryoInMapper {
WmsOdsWhiteEmbryoIn selectWmsOdsWhiteEmbryoInByWorkorderCode(String workorderCode);
void updateWmsOdsWhiteEmbryoInByOrderCode(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn);
ProOrderWorkorder selectProOrderWorkorder(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns);
List<ProOrderWorkorderBatch> selectProOrderWorkorderBatch(ProOrderWorkorder proOrderWorkorder);
WmsOdsWhiteEmbryoIn selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn);
String selectByOrderAndBc(@Param("proOrderWorkorderBatch") ProOrderWorkorderBatch proOrderWorkorderBatch,@Param("orderCode") String orderCode);
}

@ -2,7 +2,9 @@ package com.op.wms.service;
import java.util.List;
import com.op.wms.domain.OdsProcureOutOrder;
import com.op.wms.domain.OdsWhiteEmbryo;
import com.op.wms.domain.WmsOdsEmStorageNewsSn;
/**
* Service
@ -58,4 +60,12 @@ public interface IOdsWhiteEmbryoService {
* @return
*/
public int deleteOdsWhiteEmbryoByID(String ID);
OdsProcureOutOrder selectWhiteEmbryoDeliveryOrder(OdsProcureOutOrder odsProcureOrder);
WmsOdsEmStorageNewsSn selectQueryTrayInfor(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn);
String WhiteEmbryoOutbound(OdsWhiteEmbryo odsWhiteEmbryo);
String WhiteWarehouseDump(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn);
}

@ -58,4 +58,5 @@ public interface IWmsOdsWhiteEmbryoInService {
* @return
*/
public int deleteWmsOdsWhiteEmbryoInByID(String ID);
}

@ -4,6 +4,8 @@ import java.text.ParseException;
import java.util.List;
import com.op.system.api.domain.wms.wmsReportWork;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.WmsOdsWhiteEmbryoIn;
import com.op.wms.domain.WmsProductPut;
/**
@ -77,4 +79,7 @@ public interface IWmsProductPutService {
List<wmsReportWork> getReportList(wmsReportWork mesReportWork);
String addReportListSap(List<wmsReportWork> mesReportWork) throws ParseException;
ProOrderWorkorder selectWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns);
String addtWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn);
}

@ -1,19 +1,18 @@
package com.op.wms.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.wms.domain.Purcode;
import com.op.wms.domain.WmsOdsWhiteEmbryoIn;
import com.op.wms.mapper.PurcodeMapper;
import com.op.wms.domain.*;
import com.op.wms.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.wms.mapper.OdsWhiteEmbryoMapper;
import com.op.wms.domain.OdsWhiteEmbryo;
import com.op.wms.service.IOdsWhiteEmbryoService;
/**
@ -28,7 +27,12 @@ public class OdsWhiteEmbryoServiceImpl implements IOdsWhiteEmbryoService {
private OdsWhiteEmbryoMapper odsWhiteEmbryoMapper;
@Autowired
private PurcodeMapper purcodeMapper;
@Autowired
private OdsProcureOutOrderMapper odsProcureOutOrderMapper;
@Autowired
private WmsOdsEmStorageNewsSnMapper wmsOdsEmStorageNewsSnMapper;
@Autowired
private WmsOdsEmStorageNewsMapper wmsOdsEmStorageNewsMapper;
/**
*
*
@ -151,4 +155,114 @@ public class OdsWhiteEmbryoServiceImpl implements IOdsWhiteEmbryoService {
public int deleteOdsWhiteEmbryoByID(String ID) {
return odsWhiteEmbryoMapper.deleteOdsWhiteEmbryoByID(ID);
}
@Override
public OdsProcureOutOrder selectWhiteEmbryoDeliveryOrder(OdsProcureOutOrder odsProcureOrder) {
//母单其中list里面是对应的子单
DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getSiteCode());
OdsProcureOutOrder odsProcureOutOrder = odsProcureOutOrderMapper.selectmesPrepare(odsProcureOrder);
String machine= odsProcureOutOrderMapper.selectMachineCode(odsProcureOutOrder);
if (odsProcureOutOrder != null) {
List<OdsProcureOutOrder> orderList = odsProcureOutOrderMapper.selectmesPrepareDetailWhite(odsProcureOutOrder);
for (OdsProcureOutOrder order:orderList){
order.setProductionLineCode(machine);
}
odsProcureOutOrder.setList(orderList);
}
return odsProcureOutOrder;
}
@Override
public WmsOdsEmStorageNewsSn selectQueryTrayInfor(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn) {
DynamicDataSourceContextHolder.push("ds_" + wmsOdsEmStorageNewsSn.getFactoryCode());
WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn1= wmsOdsEmStorageNewsSnMapper.selectWmsOdsEmStorageNewsSnBysn(wmsOdsEmStorageNewsSn);
return wmsOdsEmStorageNewsSn1;
}
@Override
public String WhiteEmbryoOutbound(OdsWhiteEmbryo odsWhiteEmbryo) {
DynamicDataSourceContextHolder.push("ds_" + odsWhiteEmbryo.getSiteCode());
String result="出库成功";
//先查询这个订单有没有插入,/如果没有就插入,如果有就修改
OdsWhiteEmbryo odsWhiteEmbryo1= odsWhiteEmbryoMapper.selectOdsWhiteEmbryoByOrderCode(odsWhiteEmbryo);
if (odsWhiteEmbryo1==null){
odsWhiteEmbryo.setID(IdUtils.fastSimpleUUID());
odsWhiteEmbryo.setRealityNumber(new BigDecimal("0"));
odsWhiteEmbryo.setOrderStatus("1");
odsWhiteEmbryo.setCreateDate(new Date());
odsWhiteEmbryoMapper.insertOdsWhiteEmbryo(odsWhiteEmbryo);
odsWhiteEmbryo1=odsWhiteEmbryo;
}
List<WmsOdsEmStorageNewsSn> wmsOdsEmStorageNewsSnList= odsWhiteEmbryo.getWmsOdsEmStorageNewsSns();
//然后调整库存//-先调整明细明细就修改标记为0/库存减掉
for (WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn: wmsOdsEmStorageNewsSnList){
OdsWhiteEmbryo odsWhiteEmbryo2= odsWhiteEmbryoMapper.selectOdsWhiteEmbryoByID(odsWhiteEmbryo1.getID());
BigDecimal runumber= odsWhiteEmbryo2.getRealityNumber().add(wmsOdsEmStorageNewsSn.getAmount());
BigDecimal planNumber= odsWhiteEmbryo1.getPlanNumber();
if (runumber.equals(planNumber)){//相等为true否则为false
odsWhiteEmbryo1.setOrderStatus("2");
}
odsWhiteEmbryo1.setRealityNumber(runumber);
odsWhiteEmbryo1.setLastUpdateBy(odsWhiteEmbryo.getCreateBy());
odsWhiteEmbryo1.setLastUpdateDate(new Date());
odsWhiteEmbryoMapper.updateOdsWhiteEmbryo(odsWhiteEmbryo1);
//修改订单入库数量和状态
wmsOdsEmStorageNewsSn.setActiveFlag("0");
wmsOdsEmStorageNewsSnMapper.updateWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn);//明细出库
WmsOdsEmStorageNews wmsOdsEmStorageNews= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsByWlCode(wmsOdsEmStorageNewsSn);
wmsOdsEmStorageNews.setAmount(new BigDecimal("0"));//一个库位一个托盘
wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews);
}
return result;
}
@Override
public String WhiteWarehouseDump(WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn) {
String result="成功";
DynamicDataSourceContextHolder.push("ds_" + wmsOdsEmStorageNewsSn.getFactoryCode());
WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn1= wmsOdsEmStorageNewsSnMapper.selectWmsOdsEmStorageNewsSnBysnAndmaterialCode(wmsOdsEmStorageNewsSn);
//移动库存--先减后加
wmsOdsEmStorageNewsSn1.setActiveFlag("0");
//去掉明细
wmsOdsEmStorageNewsSnMapper.updateWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn1);
WmsOdsEmStorageNews wmsOdsEmStorageNews= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsByWlCode(wmsOdsEmStorageNewsSn);
BigDecimal amount= wmsOdsEmStorageNews.getAmount().subtract(wmsOdsEmStorageNewsSn.getAmount());
wmsOdsEmStorageNews.setAmount(amount);
wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews);
//
WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn2=new WmsOdsEmStorageNewsSn();
wmsOdsEmStorageNewsSn2.setAmount(wmsOdsEmStorageNewsSn.getAmount());
wmsOdsEmStorageNewsSn2.setWlCode(wmsOdsEmStorageNewsSn.gettOwlCode());
wmsOdsEmStorageNewsSn2.setMaterialCode(wmsOdsEmStorageNewsSn.getMaterialCode());
wmsOdsEmStorageNewsSn2.setMaterialDesc(wmsOdsEmStorageNewsSn.getMaterialDesc());
wmsOdsEmStorageNewsSn2.setSn(wmsOdsEmStorageNewsSn.getSn());
wmsOdsEmStorageNewsSn2.setCreateBy(wmsOdsEmStorageNewsSn.getCreateBy());
wmsOdsEmStorageNewsSn2.setGmtCreate(new Date());
wmsOdsEmStorageNewsSn2.setActiveFlag("1");
wmsOdsEmStorageNewsSn2.setFactoryCode(wmsOdsEmStorageNewsSn.getFactoryCode());
wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn2);
WmsOdsEmStorageNews wmsOdsEmStorageNews1=new WmsOdsEmStorageNews();
wmsOdsEmStorageNews1.setWlCode(wmsOdsEmStorageNewsSn.gettOwlCode());
wmsOdsEmStorageNews1.setMaterialCode(wmsOdsEmStorageNewsSn.getMaterialCode());
wmsOdsEmStorageNews1.setMaterialDesc(wmsOdsEmStorageNewsSn.getMaterialDesc());
wmsOdsEmStorageNews1.setUserDefined1(wmsOdsEmStorageNews.getUserDefined1());
wmsOdsEmStorageNews1.setFactoryCode(wmsOdsEmStorageNewsSn.getFactoryCode());
wmsOdsEmStorageNews1.setActiveFlag("1");
List<WmsOdsEmStorageNews> wmsOdsEmStorageNewsList= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsList(wmsOdsEmStorageNews1);
if (wmsOdsEmStorageNewsList.size()>0){
WmsOdsEmStorageNews wmsOdsEmStorageNews2= wmsOdsEmStorageNewsList.get(0);
BigDecimal newAmount= wmsOdsEmStorageNews2.getAmount();
wmsOdsEmStorageNews2.setAmount(newAmount.add(wmsOdsEmStorageNewsSn.getAmount()));
wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews2);
}else {
wmsOdsEmStorageNews1.setStorageId(IdUtils.fastSimpleUUID());
wmsOdsEmStorageNews1.setCreateBy(wmsOdsEmStorageNewsSn.getCreateBy());
wmsOdsEmStorageNews1.setGmtCreate(new Date());
wmsOdsEmStorageNewsMapper.insertWmsOdsEmStorageNews(wmsOdsEmStorageNews1);
}
return result;
}
}

@ -49,7 +49,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
private RemoteSapService remoteSapService;
@Autowired
private RemoteQualityService remoteQualityService;
@Autowired
private WmsOdsWhiteEmbryoInMapper wmsOdsWhiteEmbryoInMapper;
@Autowired
private WmsOdsEmStorageNewsSnMapper wmsOdsEmStorageNewsSnMapper;
@Autowired
private WmsOdsEmStorageNewsMapper wmsOdsEmStorageNewsMapper;
/**
*
*
@ -534,4 +540,103 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
return SUCCESS;
}
@Override
public ProOrderWorkorder selectWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns) {
//pro order workorder
//ipro order workorder batch
DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIns.getSiteCode());
ProOrderWorkorder proOrderWorkorder= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorder(wmsOdsWhiteEmbryoIns);
if (proOrderWorkorder!=null){
List<ProOrderWorkorderBatch> proOrderWorkorderBatchList= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorderBatch(proOrderWorkorder);
for(ProOrderWorkorderBatch proOrderWorkorderBatch:proOrderWorkorderBatchList){
String realityNumber= wmsOdsWhiteEmbryoInMapper.selectByOrderAndBc(proOrderWorkorderBatch,proOrderWorkorder.getOrderCode());
if (realityNumber!=null){
proOrderWorkorderBatch.setRealityNumber(realityNumber);
}else {
proOrderWorkorderBatch.setRealityNumber("0");
}
}
proOrderWorkorder.setProOrderWorkorderBatchList(proOrderWorkorderBatchList);
}
return proOrderWorkorder;
}
@Override
public String addtWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn) {
String result="入库成功";
//先判断这个订单是否存在//如果存在--就修改订单。-如果不存在就添加上,
DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIn.getSiteCode());
WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(wmsOdsWhiteEmbryoIn);
if (wmsOdsWhiteEmbryoIn1==null){
//原来不存在
wmsOdsWhiteEmbryoIn.setID(IdUtils.fastSimpleUUID());
wmsOdsWhiteEmbryoIn.setActive("1");
wmsOdsWhiteEmbryoIn.setRealityNumber(new BigDecimal("0"));
wmsOdsWhiteEmbryoIn.setOrderStatus("1");
wmsOdsWhiteEmbryoIn.setCreateDate(new Date());
wmsOdsWhiteEmbryoInMapper.insertWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn);
wmsOdsWhiteEmbryoIn1=wmsOdsWhiteEmbryoIn;
}
// else {//原来就存在
// wmsOdsWhiteEmbryoIn1.setOrderStatus("1");
// wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn1);
// }
List<WmsWhiteBilletInfor> wmsWhiteBilletInforList= wmsOdsWhiteEmbryoIn.getWmsWhiteBilletInforList();
for (WmsWhiteBilletInfor wmsWhiteBilletInfor:
wmsWhiteBilletInforList) {
//判断是否入完
//wms_ods_em_storage_news_sn 明细
WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn2= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByID(wmsOdsWhiteEmbryoIn1.getID());
BigDecimal runumber= wmsOdsWhiteEmbryoIn2.getRealityNumber().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity()));
BigDecimal planNumber= wmsOdsWhiteEmbryoIn2.getPlanNumber();
if (runumber.equals(planNumber)){//相等为true否则为false
wmsOdsWhiteEmbryoIn2.setOrderStatus("2");
}
wmsOdsWhiteEmbryoIn2.setLastUpdateBy(wmsOdsWhiteEmbryoIn.getCreateBy());
wmsOdsWhiteEmbryoIn2.setLastUpdateDate(new Date());
wmsOdsWhiteEmbryoIn2.setRealityNumber(runumber);
wmsOdsWhiteEmbryoInMapper.updateWmsOdsWhiteEmbryoIn(wmsOdsWhiteEmbryoIn2);
//修改订单入库数量和状态
WmsOdsEmStorageNewsSn wmsOdsEmStorageNewsSn =new WmsOdsEmStorageNewsSn();
wmsOdsEmStorageNewsSn.setWlCode(wmsWhiteBilletInfor.getWlCode());//库位
wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode());
wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc());
wmsOdsEmStorageNewsSn.setSn(wmsWhiteBilletInfor.getSn());
wmsOdsEmStorageNewsSn.setBarCode(wmsWhiteBilletInfor.getBatchCode());
wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity()));
wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy());
wmsOdsEmStorageNewsSn.setGmtCreate(new Date());
wmsOdsEmStorageNewsSn.setActiveFlag("1");
wmsOdsEmStorageNewsSn.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode());
wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn);
WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews();
wmsOdsEmStorageNews.setWlCode(wmsWhiteBilletInfor.getWlCode());
wmsOdsEmStorageNews.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode());
wmsOdsEmStorageNews.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc());
wmsOdsEmStorageNews.setActiveFlag("1");
List<WmsOdsEmStorageNews> wmsOdsEmStorageNewsList= wmsOdsEmStorageNewsMapper.selectWmsOdsEmStorageNewsList(wmsOdsEmStorageNews);
if (wmsOdsEmStorageNewsList.size()>0){
WmsOdsEmStorageNews wmsOdsEmStorageNews1 = wmsOdsEmStorageNewsList.get(0);
BigDecimal Amount=wmsOdsEmStorageNews1.getAmount().add(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity()));
wmsOdsEmStorageNews1.setAmount(Amount);
wmsOdsEmStorageNewsMapper.updateWmsOdsEmStorageNews(wmsOdsEmStorageNews1);
}else {
wmsOdsEmStorageNews.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity()));
wmsOdsEmStorageNews.setUserDefined1(wmsOdsWhiteEmbryoIn.getUnit());
wmsOdsEmStorageNews.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy());
wmsOdsEmStorageNews.setGmtCreate(new Date());
wmsOdsEmStorageNews.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode());
wmsOdsEmStorageNews.setSapFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode());
wmsOdsEmStorageNews.setStorageId(IdUtils.fastSimpleUUID());
wmsOdsEmStorageNewsMapper.insertWmsOdsEmStorageNews(wmsOdsEmStorageNews);
}
// wms_ods_em_storage_news 主库
}
return result;
}
}

@ -655,20 +655,18 @@
where equipment_id = #{equipmentId}
</update>
<select id="selectAuxiliaryEquipmentList" parameterType="com.op.wms.domain.EquBindAuxiliaryEquipment"
resultType="BaseEquipment">
<select id="selectAuxiliaryEquipmentList" parameterType="com.op.wms.domain.EquBindAuxiliaryEquipment" resultType="BaseEquipment">
select
ebac.auxiliary_equipment_code AS equipmentCode,
be.equipment_name AS equipmentName,
be.equipment_status AS equipmentStatus
ebac.auxiliary_equipment_code AS equipmentCode,
be.equipment_name AS equipmentName,
be.equipment_status AS equipmentStatus
from equ_bind_auxiliary_equipment ebac
left join base_equipment be on ebac.auxiliary_equipment_code = be.equipment_code
where ebac.equipment_code = #{equipmentCode}
order by ebac.auxiliary_equipment_code asc
</select>
<select id="selectWXRecordsList" parameterType="com.op.wms.domain.BaseEquipment"
resultType="com.op.wms.domain.BaseEquipment">
<select id="selectWXRecordsList" parameterType="com.op.wms.domain.BaseEquipment" resultType="com.op.wms.domain.BaseEquipment">
select
work_code AS workCode,
work_person AS workPerson,
@ -684,8 +682,7 @@
and del_flag = '0'
</select>
<select id="selectBYRecordsList" parameterType="com.op.wms.domain.BaseEquipment"
resultType="com.op.wms.domain.BaseEquipment">
<select id="selectBYRecordsList" parameterType="com.op.wms.domain.BaseEquipment" resultType="com.op.wms.domain.BaseEquipment">
select
order_code AS orderCode,
CONCAT(plan_loop, plan_loop_type) AS planLoop,

@ -73,19 +73,13 @@
<select id="selectBaseProductList" parameterType="BaseProduct" resultMap="BaseProductResult">
<include refid="selectBaseProductVo"/>
<where>
<if test="productCode != null and productCode != ''">and product_code like concat('%', #{productCode},
'%')
</if>
<if test="productDescZh != null and productDescZh != ''">and product_desc_zh like concat('%',
#{productDescZh}, '%')
</if>
<if test="productCode != null and productCode != ''">and product_code like concat('%', #{productCode},'%')</if>
<if test="productDescZh != null and productDescZh != ''">and product_desc_zh like concat('%',#{productDescZh}, '%')</if>
<if test="productModel != null and productModel != ''">and product_model = #{productModel}</if>
<if test="productDescEn != null and productDescEn != ''">and product_desc_en = #{productDescEn}</if>
<if test="ruleCode != null and ruleCode != ''">and rule_code = #{ruleCode}</if>
<if test="oldProductCode != null and oldProductCode != ''">and old_product_code = #{oldProductCode}</if>
<if test="partsProductCode != null and partsProductCode != ''">and parts_product_code =
#{partsProductCode}
</if>
<if test="partsProductCode != null and partsProductCode != ''">and parts_product_code = #{partsProductCode}</if>
<if test="skuBarcode != null and skuBarcode != ''">and sku_barcode = #{skuBarcode}</if>
<if test="length != null ">and length = #{length}</if>
<if test="width != null ">and width = #{width}</if>
@ -96,9 +90,7 @@
<if test="volume != null ">and volume = #{volume}</if>
<if test="unitPrice != null ">and unit_price = #{unitPrice}</if>
<if test="productGroup != null and productGroup != ''">and product_group = #{productGroup}</if>
<if test="productGroupName != null and productGroupName != ''">and product_group_name like concat('%',
#{productGroupName}, '%')
</if>
<if test="productGroupName != null and productGroupName != ''">and product_group_name like concat('%',#{productGroupName}, '%')</if>
<if test="userDefined1 != null and userDefined1 != ''">and user_defined1 = #{userDefined1}</if>
<if test="userDefined2 != null and userDefined2 != ''">and user_defined2 = #{userDefined2}</if>
<if test="userDefined3 != null and userDefined3 != ''">and user_defined3 = #{userDefined3}</if>
@ -120,6 +112,7 @@
<if test="mtart != null and mtart != ''">and mtart = #{mtart}</if>
and del_flag = '0'
</where>
order by product_code asc
</select>
<select id="selectBaseProductByProductId" parameterType="String" resultMap="BaseProductResult">

@ -41,9 +41,7 @@
<select id="selectBaseSupplierList" parameterType="BaseSupplier" resultMap="BaseSupplierResult">
<include refid="selectBaseSupplierVo"/>
<where>
<if test="supplierCode != null and supplierCode != ''">and supplier_code like concat('%', #{supplierCode},
'%')
</if>
<if test="supplierCode != null and supplierCode != ''">and supplier_code like concat('%', #{supplierCode},'%')</if>
<if test="zhDesc != null and zhDesc != ''">and zh_desc like concat('%', #{zhDesc}, '%')</if>
<if test="enDesc != null and enDesc != ''">and en_desc = #{enDesc}</if>
<if test="supplierType != null and supplierType != ''">and supplier_type = #{supplierType}</if>
@ -56,9 +54,7 @@
<if test="address != null and address != ''">and address = #{address}</if>
<if test="postcode != null and postcode != ''">and postcode = #{postcode}</if>
<if test="contact != null and contact != ''">and contact like concat('%', #{contact}, '%')</if>
<if test="contactPhone != null and contactPhone != ''">and contact_phone like concat('%', #{contactPhone},
'%')
</if>
<if test="contactPhone != null and contactPhone != ''">and contact_phone like concat('%', #{contactPhone},'%')</if>
<if test="contactPosition != null and contactPosition != ''">and contact_position = #{contactPosition}</if>
<if test="contactEmail != null and contactEmail != ''">and contact_email = #{contactEmail}</if>
<if test="activeFlag != null and activeFlag != ''">and active_flag = #{activeFlag}</if>
@ -67,6 +63,7 @@
<if test="userDefined3 != null and userDefined3 != ''">and user_defined3 = #{userDefined3}</if>
and del_flag = '0'
</where>
order by supplier_code asc
</select>
<select id="selectBaseSupplierBySupplierId" parameterType="String" resultMap="BaseSupplierResult">

@ -402,9 +402,30 @@
</foreach>
</select>
<select id="selectMachineCode" resultType="java.lang.String">
SELECT
SELECT DISTINCT
machine_code
FROM mes_report_work
WHERE workorder_code=#{order.workorderCode} AND end_report='1'
WHERE workorder_code=#{order.workorderCode}
</select>
<select id="selectmesPrepareDetailWhite" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
mes_prepare_detail.record_id ID,
mes_prepare.workorder_name,
mes_prepare_detail.prepare_id User_Defined2,
mes_prepare_detail.material_code Material_Code,
mes_prepare_detail.material_name Material_Desc,
mes_prepare_detail.prod_type User_Defined1,
mes_prepare_detail.unit Unit,
mes_prepare_detail.quantity Plan_Number,
COALESCE ( ods_white_embryo.Reality_Number, 0 ) Out_Number,
mes_prepare_detail.recoil User_Defined3,
mes_prepare_detail.factory_code Site_code
FROM
mes_prepare_detail
LEFT JOIN mes_prepare ON mes_prepare.prepare_id= mes_prepare_detail.prepare_id
LEFT JOIN ods_white_embryo ON ods_white_embryo.Order_Code= mes_prepare.workorder_name
AND ods_white_embryo.Material_Code= mes_prepare_detail.material_code
WHERE
mes_prepare_detail.prepare_id= #{ ID}
</select>
</mapper>

@ -12,7 +12,7 @@
<result property="materialDesc" column="Material_Desc"/>
<result property="planDate" column="Plan_Date"/>
<result property="planNumber" column="Plan_Number"/>
<result property="Unit" column="Unit"/>
<result property="unit" column="Unit"/>
<result property="realityNumber" column="Reality_Number"/>
<result property="orderStatus" column="Order_Status"/>
<result property="userDefined1" column="User_Defined1"/>
@ -54,7 +54,7 @@
<if test="materialDesc != null and materialDesc != ''">and Material_Desc = #{materialDesc}</if>
<if test="planDate != null ">and Plan_Date = #{planDate}</if>
<if test="planNumber != null ">and Plan_Number = #{planNumber}</if>
<if test="Unit != null and Unit != ''">and Unit = #{Unit}</if>
<if test="unit != null and unit != ''">and Unit = #{unit}</if>
<if test="realityNumber != null ">and Reality_Number = #{realityNumber}</if>
<if test="orderStatus != null and orderStatus != ''">and Order_Status = #{orderStatus}</if>
<if test="userDefined1 != null and userDefined1 != ''">and User_Defined1 = #{userDefined1}</if>
@ -105,7 +105,7 @@
<if test="materialDesc != null">Material_Desc,</if>
<if test="planDate != null">Plan_Date,</if>
<if test="planNumber != null">Plan_Number,</if>
<if test="Unit != null">Unit,</if>
<if test="unit != null">Unit,</if>
<if test="realityNumber != null">Reality_Number,</if>
<if test="orderStatus != null">Order_Status,</if>
<if test="userDefined1 != null">User_Defined1,</if>
@ -141,7 +141,7 @@
<if test="materialDesc != null">#{materialDesc},</if>
<if test="planDate != null">#{planDate},</if>
<if test="planNumber != null">#{planNumber},</if>
<if test="Unit != null">#{Unit},</if>
<if test="unit != null">#{unit},</if>
<if test="realityNumber != null">#{realityNumber},</if>
<if test="orderStatus != null">#{orderStatus},</if>
<if test="userDefined1 != null">#{userDefined1},</if>
@ -180,7 +180,7 @@
<if test="materialDesc != null">Material_Desc = #{materialDesc},</if>
<if test="planDate != null">Plan_Date = #{planDate},</if>
<if test="planNumber != null">Plan_Number = #{planNumber},</if>
<if test="Unit != null">Unit = #{Unit},</if>
<if test="unit != null">Unit = #{unit},</if>
<if test="realityNumber != null">Reality_Number = #{realityNumber},</if>
<if test="orderStatus != null">Order_Status = #{orderStatus},</if>
<if test="userDefined1 != null">User_Defined1 = #{userDefined1},</if>
@ -221,4 +221,9 @@
#{ID}
</foreach>
</delete>
<select id="selectOdsWhiteEmbryoByOrderCode" resultMap="OdsWhiteEmbryoResult">
<include refid="selectOdsWhiteEmbryoVo"/>
WHERE Order_Code=#{orderCode} AND Material_Code=#{materialCode}
and Active='1'
</select>
</mapper>

@ -45,10 +45,8 @@
<include refid="selectSysCustomerVo"/>
<where>
<if test="clientId != null and clientId != ''">and client_id = #{clientId}</if>
<if test="clientCode != null and clientCode != ''">and client_code like concat('%', #{clientCode}, '%')
</if>
<if test="clientName != null and clientName != ''">and client_name like concat('%', #{clientName}, '%')
</if>
<if test="clientCode != null and clientCode != ''">and client_code like concat('%', #{clientCode}, '%')</if>
<if test="clientName != null and clientName != ''">and client_name like concat('%', #{clientName}, '%')</if>
<if test="clientNick != null and clientNick != ''">and client_nick = #{clientNick}</if>
<if test="clientEn != null and clientEn != ''">and client_en = #{clientEn}</if>
<if test="clientDes != null and clientDes != ''">and client_des = #{clientDes}</if>
@ -72,6 +70,7 @@
<if test="attr4 != null ">and attr4 = #{attr4}</if>
and del_flag = '0'
</where>
order by client_code asc
</select>
<select id="selectSysCustomerByClientId" parameterType="java.lang.String" resultMap="SysCustomerResult">

@ -218,4 +218,8 @@
gmt_modified=now()
where wh_code=#{whCode} and wl_code=#{wlCode} and material_code=#{materialCode}
</update>
<select id="selectWmsOdsEmStorageNewsByWlCode" resultMap="WmsOdsEmStorageNewsResult">
<include refid="selectWmsOdsEmStorageNewsVo"/>
WHERE wl_code=#{wlCode} AND material_code=#{materialCode} AND active_flag='1'
</select>
</mapper>

@ -190,4 +190,13 @@
#{emOrderInSnId}
</foreach>
</delete>
<select id="selectWmsOdsEmStorageNewsSnBysn" resultMap="WmsOdsEmStorageNewsSnResult">
<include refid="selectWmsOdsEmStorageNewsSnVo"/>
WHERE sn=#{sn} AND active_flag='1'
</select>
<select id="selectWmsOdsEmStorageNewsSnBysnAndmaterialCode" resultMap="WmsOdsEmStorageNewsSnResult">
<include refid="selectWmsOdsEmStorageNewsSnVo"/>
WHERE sn=#{sn} AND active_flag='1' AND material_code=#{materialCode}
</select>
</mapper>

@ -12,7 +12,7 @@
<result property="materialDesc" column="Material_Desc"/>
<result property="planDate" column="Plan_Date"/>
<result property="planNumber" column="Plan_Number"/>
<result property="Unit" column="Unit"/>
<result property="unit" column="Unit"/>
<result property="realityNumber" column="Reality_Number"/>
<result property="orderStatus" column="Order_Status"/>
<result property="userDefined1" column="User_Defined1"/>
@ -55,7 +55,7 @@
<if test="materialDesc != null and materialDesc != ''">and Material_Desc = #{materialDesc}</if>
<if test="planDate != null ">and Plan_Date = #{planDate}</if>
<if test="planNumber != null ">and Plan_Number = #{planNumber}</if>
<if test="Unit != null and Unit != ''">and Unit = #{Unit}</if>
<if test="unit != null and unit != ''">and Unit = #{unit}</if>
<if test="realityNumber != null ">and Reality_Number = #{realityNumber}</if>
<if test="orderStatus != null and orderStatus != ''">and Order_Status = #{orderStatus}</if>
<if test="userDefined1 != null and userDefined1 != ''">and User_Defined1 = #{userDefined1}</if>
@ -113,7 +113,7 @@
<if test="materialDesc != null">Material_Desc,</if>
<if test="planDate != null">Plan_Date,</if>
<if test="planNumber != null">Plan_Number,</if>
<if test="Unit != null">Unit,</if>
<if test="unit != null">Unit,</if>
<if test="realityNumber != null">Reality_Number,</if>
<if test="orderStatus != null">Order_Status,</if>
<if test="userDefined1 != null">User_Defined1,</if>
@ -149,7 +149,7 @@
<if test="materialDesc != null">#{materialDesc},</if>
<if test="planDate != null">#{planDate},</if>
<if test="planNumber != null">#{planNumber},</if>
<if test="Unit != null">#{Unit},</if>
<if test="unit != null">#{unit},</if>
<if test="realityNumber != null">#{realityNumber},</if>
<if test="orderStatus != null">#{orderStatus},</if>
<if test="userDefined1 != null">#{userDefined1},</if>
@ -188,7 +188,7 @@
<if test="materialDesc != null">Material_Desc = #{materialDesc},</if>
<if test="planDate != null">Plan_Date = #{planDate},</if>
<if test="planNumber != null">Plan_Number = #{planNumber},</if>
<if test="Unit != null">Unit = #{Unit},</if>
<if test="unit != null">Unit = #{unit},</if>
<if test="realityNumber != null">Reality_Number = #{realityNumber},</if>
<if test="orderStatus != null">Order_Status = #{orderStatus},</if>
<if test="userDefined1 != null">User_Defined1 = #{userDefined1},</if>
@ -238,4 +238,52 @@
Last_Update_Date = now()
where Order_Code=#{orderCode}
</update>
<select id="selectProOrderWorkorder" resultType="com.op.wms.domain.ProOrderWorkorder">
SELECT
workorder_id workorderId,
workorder_code workorderCode,
workorder_name workorderName,
order_id orderId,
order_code orderCode,
product_code productCode ,
product_name productName,
unit unit,
quantity_split quantitySplit,
route_code routeCode,
prod_line_code prodLineCode,
product_date productDate,
factory_code factoryCode,
prod_type prodType,
workorder_code_sap workorderCodeSap
FROM
pro_order_workorder
WHERE workorder_code=#{orderCode}
AND del_flag='0'
</select>
<select id="selectProOrderWorkorderBatch" resultType="com.op.wms.domain.ProOrderWorkorderBatch">
SELECT
batch_code batchCode,
batch_quantity batchQuantity
FROM
pro_order_workorder_batch
WHERE
del_flag = '0'
AND workorder_id = #{workorderId}
</select>
<select id="selectByOrderAndBc" resultType="java.lang.String">
SELECT
Reality_Number
FROM
wms_ods_white_embryo_in
WHERE
Order_Code = #{orderCode}
AND User_Defined1 = #{proOrderWorkorderBatch.batchCode}
</select>
<select id="selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1" resultMap="WmsOdsWhiteEmbryoInResult">
<include refid="selectWmsOdsWhiteEmbryoInVo"/>
WHERE Active='1' AND Order_Code=#{orderCode} AND User_Defined1=#{userDefined1}
</select>
</mapper>

Loading…
Cancel
Save