Merge remote-tracking branch 'origin/master'

master
Yangwl 1 year ago
commit de31118290

@ -28,6 +28,9 @@ public interface RemoteSapService {
@PostMapping("/sap/shopUpdateSync")
public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder);
@PostMapping("/sap/shopOrderBomUpdate")
public R shopOrderBomUpdate(@RequestBody(required = false) List<Map<String, Object>> mapList);
@PostMapping("/sap/sapRouterSync")
public R<Boolean> sapRouterSync(@RequestBody SapRouterQuery sapRouterQuery);

@ -166,6 +166,16 @@ public class SapBaseProduct extends BaseEntity {
@Excel(name = "补料比例")
private String appendPercent;
private String meins;
public String getMeins() {
return meins;
}
public void setMeins(String meins) {
this.meins = meins;
}
public void setProductId(String productId) {
this.productId = productId;
}

@ -79,6 +79,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory<RemoteSapServic
return R.fail("sap shopUpdateSync失败" + throwable.getMessage());
}
@Override
public R shopOrderBomUpdate(List<Map<String, Object>> mapList) {
return R.fail("sap shopOrderBomUpdate失败" + throwable.getMessage());
}
@Override
public R sapBackflushMP(List<SapBackflushMPQuery> sapBackflushMPQueryList) {
return R.fail("反冲物料领料过账失败" + throwable.getMessage());

@ -456,6 +456,17 @@ public class MesReportWorkController extends BaseController {
public List<MesPrepareDetailDTO> getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) {
return mesReportWorkService.getNewPrepareData(mesPrepareDetail);
}
/**删除新增的报工物料组成**/
@DeleteMapping("/deleteBomRowNow/{id}")
public AjaxResult deleteBomRowNow(@PathVariable String id) {
return toAjax(mesReportWorkService.deleteBomRowNow(id));
}
//获取仓库下拉列表
@GetMapping("/getWarehouseList")
public List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume) {
List<MesReportWorkConsume> rlist = mesReportWorkService.getWarehouseList(workConsume);
return rlist;
}
}

@ -109,6 +109,25 @@ public class MesReportWorkConsume extends BaseEntity {
private String pMaterialCode;
private String workorderCodeSap;
private String warehouseCode;
private String warehouseName;
public String getWarehouseCode() {
return warehouseCode;
}
public void setWarehouseCode(String warehouseCode) {
this.warehouseCode = warehouseCode;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getWorkorderCodeSap() {
return workorderCodeSap;
}

@ -79,4 +79,6 @@ public interface MesReportWorkConsumeMapper {
List<MesReportWorkConsume> getSonConsumeList(MesReportWorkConsume mesReportWorkConsume);
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
MesReportWorkConsume getNewConsumeInfo(String workorderCode);
}

@ -137,5 +137,9 @@ public interface MesReportWorkMapper {
ProOrderWorkorder getSonWorkOrder(String workorderCode);
public MesReportWork getReportWorkHz1(MesReportWork mesReportWork);
int deleteBomRowNow(String id);
List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume);
List<MesReportWorkConsume> getUpdateAttr1Boms(MesReportWork workorderCode);
}

@ -111,4 +111,8 @@ public interface IMesReportWorkService {
List<MesReportWorkTabs> getAllLevelReportList(MesReportWork mesReportWork);
List<MesPrepareDetailDTO> getNewPrepareData(MesPrepareDetail mesPrepareDetail);
int deleteBomRowNow(String id);
List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume);
}

@ -306,26 +306,29 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
*
* * ----------------------------------------
* *
* * =
* * = *
* * =sumpc
* * =sum()
* * = sum*
* * =
* * =
* * ----------------------------------------
* *
* * =sum()
* * = *
* * =sumpc
* * =sum()
* * = sum(*)线
* * =
* * =
* * <p>
* *
* * =sum()
* * = 4*sum()
* * =sumpc
* * =sum()
* * = 4*sum() 4
* * =
* * =
* * ----------------------------------------
* *
* * =
* * =
* * =sum()
* * = sum(*)
* * =
* * =
* @param mesReportWork
@ -343,19 +346,28 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
if (CollectionUtils.isEmpty(workOrders)) {
return R.fail("子母工单信息缺失");
}
/**修改sap物料损耗组成**/
R updateBomsSap = this.updateAttr1BomsSap(workOrders);
if(updateBomsSap.getCode()== 500){
return updateBomsSap;
}
R sapRson = null;
if(workOrders.size()==1){
/**(一层报工)工单报工**/
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork);
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if(sHzWorks==null){
return R.fail("未查询到一层报工单");
}
//机器=sum(工时数) 【设备开机时间】 Sac1
//人工 = sum每批的工时数*每批用人数) Sac2
//子工单报工
logger.info("==========================一层工单报工开始");
sapRson = this.reportHzToSap(sHzWorks,1);
sapRson = this.reportHzToSap(sHzWorks);
logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson));
}else if(workOrders.size()==2){
/**(两层报工)子工单先报工,然后母工单报工**/
@ -368,7 +380,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
//子工单报工
logger.info("==========================子工单报工开始");
sapRson = this.reportHzToSap(sHzWorks,2);
sapRson = this.reportHzToSap(sHzWorks);
logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson));
if(sapRson.getCode()== 200){
//一定是子单报工成功返回后,再母单报工
@ -385,25 +397,32 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
//母工单报工
logger.info("==========================母工单报工开始");
pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback());
pHzWork.setSac2("4");//母单报工固定值
R sapR = this.reportHzToSap(pHzWork,2);
//pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4)
R sapR = this.reportHzToSap(pHzWork);
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
return sapR;
}
}else if(workOrders.size()>=3){
for(MesReportWork workOrder:workOrders){
MesReportWork hzWorks = null;
for(int n=0;n<workOrders.size();n++){
MesReportWork workOrder = workOrders.get(n);
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrder.getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork);
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork);
if (sHzWorks == null) {
return R.fail(workOrder.getWorkorderCode()+"未查询到报工单");
}
if(n==0){
hzWorks = sHzWorks;
}
//三层以上工单报工
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工开始");
sapRson = this.reportHzToSap(sHzWorks,3);
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:"
logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工开始");
sHzWorks.setQuantityFeedback(hzWorks.getQuantityFeedback());
sapRson = this.reportHzToSap(sHzWorks);
logger.info("==========================三层(第"+n+"层)以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:"
+ JSONObject.toJSONString(sapRson));
if (sapRson.getCode() == 200) {
try {
@ -421,31 +440,48 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
return sapRson;
}
//修改报工物料组成
private R updateAttr1BomsSap(List<MesReportWork> workOrderCodes) {
//是否有变动的物料损耗组成
List<MesReportWorkConsume> updateBoms = mesReportWorkMapper.getUpdateAttr1Boms(workOrderCodes.get(workOrderCodes.size()-1));
if(!CollectionUtils.isEmpty(updateBoms)){
List<Map<String, Object>> mapList = new ArrayList<>();
Map<String, Object> mapBom = null;
for(MesReportWorkConsume updateBom:updateBoms){
mapBom = new HashMap<String, Object>();
mapBom.put("P_AUFNR",updateBom.getWorkorderCodeSap());// 订单号 例如000100308287
mapBom.put("P_MATNR",updateBom.getMaterialCode());// 物料号 例如000000040000015089
mapBom.put("P_GMEIN",updateBom.getUnit());// 基本计量单位 例如m
mapBom.put("P_WERKS",workOrderCodes.get(0).getFactoryCode());//物料工厂 例如1000
mapBom.put("P_LGORT",updateBom.getWarehouseCode());//仓库编号 例如0013
mapList.add(mapBom);
}
logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode()
+ "报工损耗物料组件修改请求:" + JSONObject.toJSONString(mapList));
R bomUpdateR = remoteSapService.shopOrderBomUpdate(mapList);
logger.info(workOrderCodes.get(workOrderCodes.size()-1).getWorkorderCode()
+ "报工损耗物料组件修改结果:" + JSONObject.toJSONString(bomUpdateR));
return bomUpdateR;
}
return R.ok();
}
/**
*
* @param workOrder
* @return
*/
private R reportHzToSap(MesReportWork workOrder,int cengji) {
private R reportHzToSap(MesReportWork workOrder) {
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 = 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_activity2(workOrder.getSac2());//人工
ltgs.setConf_activity3(workOrder.getSac1());//折旧
ltgs.setConf_activity4(newMan.toString());//其它
ltgs.setConf_activity4(workOrder.getSac2());//其它
// ltgs.setConf_activity5(workOrder.getSac5());
// ltgs.setConf_activity6(workOrder.getSac6());
sapRFW.setLt_gs(ltgs);
@ -481,6 +517,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
mesReportWorkMapper.updateSyncSapStatus(workOrder);
return r;
// return R.ok();//测试
}

@ -1,10 +1,8 @@
package com.op.mes.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
@ -16,6 +14,7 @@ import com.op.mes.mapper.MesReportWorkMapper;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -171,7 +170,36 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
mesReportWorkConsume.setUpdateTime(nowTime);
mesReportWorkConsume.setUpdateBy(updateBy);
}
return mesReportWorkConsumeMapper.submitConsumePS(mesReportWorkConsumes);
List<MesReportWorkConsume> updates = mesReportWorkConsumes
.stream()
.filter(u -> u.getCreateTime()!=null).collect(Collectors.toList());
List<MesReportWorkConsume> adds = mesReportWorkConsumes
.stream()
.filter(u -> u.getCreateTime()==null).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(adds)){
Map<String,MesReportWorkConsume> consumeInfoMap = new HashMap<>();
for(MesReportWorkConsume add:adds){
MesReportWorkConsume newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode());
if(newConsumeInfo==null){
MesReportWorkConsume mapItem = mesReportWorkConsumeMapper.getNewConsumeInfo(add.getWorkorderCode());
consumeInfoMap.put(add.getWorkorderCode(),mapItem);
}
newConsumeInfo = consumeInfoMap.get(add.getWorkorderCode());
add.setRecordId(IdUtils.fastSimpleUUID());
add.setReportCode(newConsumeInfo.getReportCode());
add.setWorkorderCode(newConsumeInfo.getWorkorderCode());
add.setCreateTime(nowTime);
add.setCreateTime(nowTime);
add.setAttr1("1");//新增标识
add.setParentOrder(newConsumeInfo.getParentOrder());
}
int addNum =mesReportWorkConsumeMapper.addConsumePS(adds);
System.out.println("addNum:"+addNum);
}
int updateNum =mesReportWorkConsumeMapper.submitConsumePS(updates);
System.out.println("addNum:"+updateNum);
return updateNum;
}
@Override

@ -237,6 +237,18 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return details;
}
@Override
@DS("#header.poolName")
public int deleteBomRowNow(String id) {
return mesReportWorkMapper.deleteBomRowNow(id);
}
@Override
@DS("#header.poolName")
public List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume) {
return mesReportWorkMapper.getWarehouseList(workConsume);
}
@Override
@DS("#header.poolName")
public int submitReportPS(List<MesReportWork> mesReportWorks) {
@ -550,6 +562,8 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return dtos;
}
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();

@ -66,26 +66,25 @@
where record_id = #{recordId}
</select>
<select id="getMesListBom" resultType="com.op.system.api.domain.dto.BaseBomDTO">
select bbc.component,
bbc.component_unit unit,
bp.product_desc_zh componentName,
bp.product_group productGroup,
bp.product_group_name productGroupName
from base_bom_component bbc
left join base_product bp on SUBSTRING(bp.product_code, 8, 12) = bbc.component
left join mes_report_work_consume wc on wc.material_code = bbc.component and wc.workorder_code =
#{workorderCode}
where bbc.product_code = SUBSTRING(#{productCode}, 8, 12)
and bp.del_flag = '0' and wc.material_code is null
<if test="component != null and component != ''">and bbc.component like concat('%', #{component}, '%')</if>
<if test="componentName != null and componentName != ''">bp.product_desc_zh like concat('%', #{componentName},
'%')
select
bp.product_code component,
bp.product_desc_zh componentName,
bp.product_group productGroup,
bp.product_group_name productGroupName,
bp.meins unit
from base_product bp
where bp.del_flag = '0'
<if test="component != null and component != ''">
and bp.product_code like concat('%', #{component},'%')
</if>
<if test="productGroup != null and productGroup != ''">and bp.product_group like concat('%', #{productGroup},
'%')
<if test="componentName != null and componentName != ''">
and bp.product_desc_zh like concat('%', #{componentName},'%')
</if>
<if test="productGroupName != null and productGroupName != ''">and bp.product_group_name like concat('%',
#{productGroupName}, '%')
<if test="productGroup != null and productGroup != ''">
and bp.product_group like concat('%', #{productGroup},'%')
</if>
<if test="productGroupName != null and productGroupName != ''">
and bp.product_group_name like concat('%',#{productGroupName}, '%')
</if>
</select>
<select id="getTeamList" resultType="com.op.system.api.domain.mes.BaseTeamTDTO">
@ -103,12 +102,14 @@
mrwc.unit,
mrwc.create_time createTime,
mrwc.recoil,
pow.workorder_code_sap workorderCodeSap
pow.workorder_code_sap workorderCodeSap,
mrwc.attr1,
mrwc.warehouse_code warehouseCode
from mes_report_work_consume mrwc
left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code
where mrwc.del_flag = '0' and pow.del_flag = '0'
and mrwc.workorder_code = #{workorderCode}
order by mrwc.recoil
order by mrwc.recoil,mrwc.attr1
</select>
<select id="getSonConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.record_id recordId,
@ -143,6 +144,13 @@
<if test='parentOrder=="0"'>mrw.workorder_code = #{workorderCode}</if>
<if test='parentOrder!="0"'>mrw.parent_order = #{workorderCode}</if>
</select>
<select id="getNewConsumeInfo" resultType="com.op.mes.domain.MesReportWorkConsume">
select top 1 report_code reportCode,
workorder_code workorderCode,
parent_order parentOrder
from mes_report_work_consume
where workorder_code = #{workorderCode} and del_flag = '0'
</select>
<insert id="insertMesReportWorkConsume" parameterType="MesReportWorkConsume">
insert into mes_report_work_consume
@ -203,13 +211,15 @@
(
record_id,report_code,workorder_code,
material_code,material_name,quantity,unit,
create_by,create_time,parent_order,recoil
create_by,create_time,parent_order,recoil,
warehouse_code,warehouse_name
)values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.recordId},#{item.reportCode},#{item.workorderCode},
#{item.materialCode},#{item.materialName},#{item.quantity},#{item.unit},
#{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil}
#{item.createBy},#{item.createTime},#{item.parentOrder},#{item.recoil},
#{item.warehouseCode},#{item.warehouseName}
)
</foreach>
</insert>
@ -243,7 +253,9 @@
set
quantity = #{item.quantity},
update_by = #{item.updateBy},
update_time = #{item.updateTime}
update_time = #{item.updateTime},
warehouse_code = #{item.warehouseCode},
warehouse_name = #{item.warehouseName}
where
record_id = #{item.recordId}
</foreach>

@ -472,7 +472,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="getSapWorkOrder" resultType="com.op.mes.domain.MesReportWork">
select workorder_code_sap workorderCodeSap,
workorder_code workorderCode
workorder_code workorderCode,
factory_code factoryCode
from pro_order_workorder
where belong_work_order = #{workorderCode} and del_flag = '0' <!--and status = 'w2'-->
order by order_code
@ -480,7 +481,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getReportWorkHzList" resultType="com.op.mes.domain.MesReportWork">
select mrw.workorderCode,mrw.productCode,mrw.productName,mrw.machineCode,mrw.machineName,
mrw.shiftCode,mrw.quantityFeedback,
mrw.workTime,mrw.useMan,mrw.uploadStatus,mrw.unit,
mrw.workTime,mrw.uploadStatus,mrw.unit,
pow.order_code orderCode,pow.quantity_split quantity,
pow.workorder_code_sap workorderCodeSap,
pow.product_date productDate,
@ -495,7 +496,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
shift_code shiftCode,
sum(quantity_feedback) quantityFeedback,
sum(work_time) workTime,
use_man useMan,
upload_status uploadStatus,
upload_time uploadTime,
upload_msg uploadMsg,
@ -510,7 +510,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="uploadStatus != null and uploadStatus != ''"> and upload_status = #{uploadStatus}</if>
group by workorder_code, product_code,product_name,machine_code,machine_name,shift_code
,upload_status,unit,use_man
,upload_status,unit
,upload_time,upload_msg
) mrw
left join pro_order_workorder pow on mrw.workorderCode = pow.workorder_code
@ -581,45 +581,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
workorder_code,
sum(quantity_feedback) quantity_feedback,
sum(work_time) sac1,
use_man sac2,
sum(work_time*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
group by workorder_code,product_code,product_name
) mrw
left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code
left join base_equipment equ on equ.equipment_code = ow.workorder_name
</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,
equ.sap_code sapCode
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
left join base_equipment equ on equ.equipment_code = ow.workorder_name
</select>
<select id="getEndReport" resultType="com.op.mes.domain.MesReportWork">
select end_report endReport
from mes_report_work
@ -691,6 +664,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where mrw.parent_order = '0'
and mrw.workorder_code = #{workorderCode}
and mrw.del_flag = '0' and po.del_flag = '0'
order by mrw.batch
</select>
<select id="getSonWorkOrder" resultType="com.op.mes.domain.ProOrderWorkorder">
select workorder_code workorderCode,
@ -699,6 +673,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where parent_order = #{workorderCode}
and del_flag='0'
</select>
<select id="getWarehouseList" resultType="com.op.mes.domain.MesReportWorkConsume">
select warehouse_code warehouseCode,
warehouse_name warehouseName
from base_warehouse
where active_flag = '1' and del_flag = '0'
</select>
<select id="getUpdateAttr1Boms" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.material_code materialCode,
mrwc.material_name materialName,
mrwc.unit,
mrwc.workorder_code workorderCode,
pow.workorder_code_sap workorderCodeSap,
mrwc.warehouse_code warehouseCode
from mes_report_work_consume mrwc
left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code
where mrwc.attr1 = '1' and mrwc.del_flag = '0'
and mrwc.parent_order = #{workorderCode}
</select>
<insert id="insertMesReportWork" parameterType="MesReportWork">
insert into mes_report_work
@ -896,4 +888,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<delete id="deleteBomRowNow" parameterType="String">
update mes_report_work_consume
set del_flag = '1'
where record_id = #{id}
</delete>
</mapper>

@ -77,7 +77,7 @@ public interface OpenMapper {
public int addBatch(@Param("list") List<QcCheckTaskDetailDTO> items);
List<QcUserMaterialDTO> getUserByMaterial(String materialCode);
List<QcUserMaterialDTO> getCheckUsers(String materialCode);
public int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);
}

@ -346,7 +346,7 @@ public class OpenServiceImpl implements OpenService {
qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode());
List<QcUserMaterialDTO> users = openMapper.getCheckUsers(qcCheckTaskProduce.getOrderNo());
if (CollectionUtils.isEmpty(users)) {
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setId(IdUtils.fastSimpleUUID());

@ -195,10 +195,12 @@
and qctp.type_id = #{typeId}
order by qctp.sort
</select>
<select id="getUserByMaterial" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select user_code userCode,
user_name userName
from qc_user_material where material_code = #{materialCode}
<select id="getCheckUsers" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select qum.user_code userCode,
qum.user_name userName
from qc_user_material qum
left join pro_order_workorder pow on pow.workorder_code = qum.material_code
where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and qum.del_flag = '0'
</select>
<insert id="insertEquRepairOrder" parameterType="DeviceRepairOrder">

@ -286,6 +286,8 @@ public class ProOrderController extends BaseController {
}
/**
* workorderIds
*
*
*/
@RequiresPermissions("mes:pro:order:edit")
@Log(title = "关闭订单", businessType = BusinessType.OTHER)

@ -4,12 +4,14 @@ import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.exception.ServiceException;
import com.op.plan.domain.ProOrder;
import com.op.plan.domain.dto.SplitOrderDTO;
import com.op.plan.service.IProWetMaterialPlanDetailService;
import com.op.plan.service.IProWetMaterialPlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -40,8 +42,6 @@ import com.op.common.core.web.page.TableDataInfo;
public class ProOrderWorkorderController extends BaseController {
@Autowired
private IProOrderWorkorderService proOrderWorkorderService;
@Autowired
private IProWetMaterialPlanDetailService proWetMaterialPlanDetailService;
/**
* code
@ -255,6 +255,10 @@ public class ProOrderWorkorderController extends BaseController {
@Log(title = "下发生产工单", businessType = BusinessType.OTHER)
@PostMapping("/downWorkorder/{workorderIds}")
public AjaxResult downWorkorder(@PathVariable String[] workorderIds) {
List<String> orderNotW0 = proOrderWorkorderService.getOrderNotW0(workorderIds);
if(workorderIds.length != orderNotW0.size()){
return AjaxResult.error("存在已经派发的订单,请重新选择工单!");
}
return toAjax(proOrderWorkorderService.downProOrderWorkorderByWorkorderIds(workorderIds));
}
}

@ -152,6 +152,16 @@ public class ProOrder extends TreeEntity {
private Integer sortNo;
// 车数
private Integer carNum;
@Excel(name = "订单状态", readConverterExp = "0=正常,1=关闭")
private String delFlag;
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public Integer getCarNum() {
return carNum;

@ -234,4 +234,6 @@ public interface ProOrderMapper {
void updateOrderStatusCompleteByOrderCode(String orderCode);
void addSapLog(SysSapLog sysSapLog);
int updateCloseOrderBatchById(@Param("orderIds")String[] orderIds);
}

@ -190,5 +190,9 @@ public interface ProOrderWorkorderMapper {
int deletePrepareBatch(@Param("workorders")List<String> workorders);
int deletePrepareDetailBatch(@Param("workorders")List<String> workorders);
List<String> getOrderNotW0(@Param("workorderCodes") String[] workorderCodes);
List<ProOrderWorkorder> getOrderByOrders(@Param("orderIds") String[] orderIds);
}

@ -131,4 +131,6 @@ public interface IProOrderWorkorderService {
List<ProOrderWorkorder> getNextLevelWorkOrderList(ProOrderWorkorder proOrderWorkorder);
AjaxResult subChangeWorkOrderPro(SplitOrderDTO splitOrderDTO);
List<String> getOrderNotW0(String[] workorderIds);
}

@ -100,15 +100,15 @@ public class ProOrderServiceImpl implements IProOrderService {
@Transactional(rollbackFor = Exception.class)
public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) {
boolean checkout = true;
// 校验批次编号是否存在(重复问题)
List<String> batchCodes = proOrderMapper.selectBatchCodes();
for (int i = 0; i < batchCodes.size(); i++) {
for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) {
if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) {
checkout = false;
}
}
}
// // 校验批次编号是否存在(重复问题)
// List<String> batchCodes = proOrderMapper.selectBatchCodes();//这种校验不可取需要修改
// for (int i = 0; i < batchCodes.size(); i++) {
// for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) {
// if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) {
// checkout = false;
// }
// }
// }
//校验各工序设备是否已选择
List<CascaderDTO> processes= proOrderMapper.getRouteProcess(splitOrderDTO.getRouteCode());
if(splitOrderDTO.getProdLineCodeArray().length == 0){
@ -134,7 +134,7 @@ public class ProOrderServiceImpl implements IProOrderService {
splitOrderDTO.setProdLineCode(codeArray);
}
// 如果不重复
// 如果校验通过
if (checkout) {
/****白坯订单*****/
@ -270,6 +270,7 @@ public class ProOrderServiceImpl implements IProOrderService {
// 获取单位换算值
Long conver = 1L;
String belongWorkOrder = "0";
ProOrderDTO productNameInfo = splitOrderDTO.getProduct();
while (run) {
// 先进行当前订单拆分操作
// 1.设置工单信息,并更新订单信息至数据库
@ -297,10 +298,10 @@ public class ProOrderServiceImpl implements IProOrderService {
R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据
logger.info("母订单"+proOrder.getOrderCode()+
"订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg());
}else{
workOrder.setProductCode(splitOrderDTO.getProduct().getChildren().get(0).getProdCode());
workOrder.setProductName(splitOrderDTO.getProduct().getChildren().get(0).getProdDesc());
}
workOrder.setProductCode(productNameInfo.getProdCode());
workOrder.setProductName(productNameInfo.getProdDesc());
workOrder.setBelongWorkOrder(belongWorkOrder);
workOrder.setProdType("LJ01");
@ -321,6 +322,8 @@ public class ProOrderServiceImpl implements IProOrderService {
parentOrder.append(workOrder.getWorkorderCode());
// code自增
endCode++;
productNameInfo = productNameInfo.getChildren().get(0);
} else {
if(!"0".equals(workOrder.getParentOrder())) {
// 设置子节点end_flag字段信息
@ -1090,7 +1093,16 @@ public class ProOrderServiceImpl implements IProOrderService {
@DS("#header.poolName")
@Transactional(rollbackFor = Exception.class)
public int deleteOrder(String[] orderIds) {
//可以进行订单关闭的数据
//未拆分,直接关闭订单
List<ProOrderWorkorder> checkOrders = proOrderWorkorderMapper.getOrderByOrders(orderIds);
if(!CollectionUtils.isEmpty(checkOrders)){
int m0 = proOrderMapper.deleteProOrderByIds(orderIds);
logger.info(orderIds[0]+"删除订单m0:"+m0);
return 1;
}
//已经存在工单可以进行订单关闭的数据
List<ProOrderWorkorder> checkWorkOrders = proOrderWorkorderMapper.getWorkOrderByOrders(orderIds);
if(checkWorkOrders.size() != orderIds.length){
return 2;
@ -1135,33 +1147,27 @@ public class ProOrderServiceImpl implements IProOrderService {
closeR.getCode()+","+
closeR.getMsg()+","+
closeR.getData());
//if(closeR.getCode()==200){
String[] workorderIds = (String[]) delteIds.toArray(new String[delteIds.size()]);
if (workorderIds.length > 0) {
//删除工单(字母)pro_order_workorder
int m1 = proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds);
logger.info(workorderCodes.get(0)+"删除订单m1:"+m1);
//删除批次pro_order_workorder_batch
int m2 = proOrderWorkorderBatchMapper.deleteBatch(workorderIds);
logger.info(workorderCodes.get(0)+"删除订单m2:"+m2);
//删除领料单mes_prepare
int m3 = proOrderWorkorderMapper.deletePrepareBatch(workorderCodes);
logger.info(workorderCodes.get(0)+"删除订单m3:"+m3);
//删除领料单明细mes_prepare_detail
int m4 = proOrderWorkorderMapper.deletePrepareDetailBatch(workorderCodes);
logger.info(workorderCodes.get(0)+"删除订单m4:"+m4);
}
String[] workorderIds = (String[]) delteIds.toArray(new String[delteIds.size()]);
if (workorderIds.length > 0) {
//删除工单(字母)pro_order_workorder
int m1 = proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds);
logger.info(workorderCodes.get(0)+"删除订单m1:"+m1);
//删除批次pro_order_workorder_batch
int m2 = proOrderWorkorderBatchMapper.deleteBatch(workorderIds);
logger.info(workorderCodes.get(0)+"删除订单m2:"+m2);
//删除领料单mes_prepare
int m3 = proOrderWorkorderMapper.deletePrepareBatch(workorderCodes);
logger.info(workorderCodes.get(0)+"删除订单m3:"+m3);
//删除领料单明细mes_prepare_detail
int m4 = proOrderWorkorderMapper.deletePrepareDetailBatch(workorderCodes);
logger.info(workorderCodes.get(0)+"删除订单m4:"+m4);
}
if (!CollectionUtils.isEmpty(workers)) {
//删除订单pro_order
int m5 = proOrderMapper.updateCloseOrderBatch(workers);
logger.info(workorderCodes.get(0)+"删除订单m5:"+m5);
}
// }else{
// logger.info(workorder.getWorkorderCode()+"删除订单后关闭订单sap返回结果"+
// JSONObject.toJSONString(closeR));
// return 0;
// }
if (!CollectionUtils.isEmpty(workers)) {
//删除订单pro_order
int m5 = proOrderMapper.updateCloseOrderBatch(workers);
logger.info(workorderCodes.get(0)+"删除订单m5:"+m5);
}
}
return 1;
}

@ -1092,6 +1092,12 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
return error(500, "批次号不能重复");
}
@Override
@DS("#header.poolName")
public List<String> getOrderNotW0(String[] workorderIds) {
return proOrderWorkorderMapper.getOrderNotW0(workorderIds);
}
/**
*
* 湿

@ -30,13 +30,14 @@
<result property="prodType" column="prod_type"/>
<result property="prodSpc" column="prod_spc"/>
<result property="carNum" column="car_num"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<sql id="selectProOrderVo">
select id, plan_factory_code, order_type, order_code, prod_code, prod_desc, quantity, quantity_split,
unit, worker_order, plan_pro_date, plan_complete, atrr1, atrr2, atrr3,
status, parent_order, create_by, create_time, update_by, update_time, prod_type,
factory_code, prod_spc ,car_num
factory_code, prod_spc ,car_num,del_flag
from pro_order
</sql>
@ -67,7 +68,7 @@
<if test="planDateStart != null ">and CONVERT(varchar(10),plan_pro_date, 120) >= '${planDateStart}'</if>
<if test="planDateEnd != null ">and '${planDateEnd}%' >= CONVERT(varchar(10),plan_pro_date, 120)</if>
and prod_type != 'white'
and del_flag = '0'
<if test="delFlag != null and delFlag != ''">and del_flag = #{delFlag}</if>
</where>
ORDER BY plan_pro_date DESC
</select>
@ -378,6 +379,14 @@
<update id="updateOrderStatusCompleteByOrderCode">
update pro_order set status = 'o2' where parent_order = #{orderCode} and del_flag = '0'
</update>
<update id="updateCloseOrderBatchById">
update pro_order
set del_flag = '1'
where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<delete id="deleteProOrderById" parameterType="String">
update pro_order

@ -523,6 +523,26 @@
and pow.del_flag = '0'
</select>
<select id="getOrderNotW0" resultType="java.lang.String">
select
workorder_code
from pro_order_workorder pow
where pow.workorder_code in
<foreach item="workorderCode" collection="workorderCodes" open="(" separator="," close=")">
#{workorderCode}
</foreach>
and pow.status in ('w0')
and pow.del_flag = '0'
</select>
<select id="getOrderByOrders" resultType="com.op.plan.domain.ProOrderWorkorder">
select status,id
from pro_order
where id in
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
#{orderId}
</foreach>
and status in ('o1','o0') and del_flag = '0'
</select>
<insert id="createPrepareDetails">
insert into mes_prepare_detail

@ -29,6 +29,7 @@
from pro_route pr
INNER JOIN pro_route_product prp ON pr.route_id = prp.route_id
where prp.item_code = #{itemCode} and pr.enable_flag = 'Y'
order by pr.route_code desc
</select>
</mapper>

@ -74,6 +74,8 @@ public class QcCheckTaskDefect extends BaseEntity {
@Excel(name = "检验任务id")
private String belongTo;
private String belongToDetail;
/**
*
*/
@ -86,6 +88,14 @@ public class QcCheckTaskDefect extends BaseEntity {
@Excel(name = "不合格数量")
private BigDecimal noOkQuality;
public String getBelongToDetail() {
return belongToDetail;
}
public void setBelongToDetail(String belongToDetail) {
this.belongToDetail = belongToDetail;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
}

@ -135,6 +135,33 @@ public class QcCheckTaskDetail extends BaseEntity {
private String fileListStr;
private List<BaseFile> files;
private List<String> fileUrls;
private String defectCodes;
private String defectNames;
private String defectQualitys;
public String getDefectCodes() {
return defectCodes;
}
public void setDefectCodes(String defectCodes) {
this.defectCodes = defectCodes;
}
public String getDefectNames() {
return defectNames;
}
public void setDefectNames(String defectNames) {
this.defectNames = defectNames;
}
public String getDefectQualitys() {
return defectQualitys;
}
public void setDefectQualitys(String defectQualitys) {
this.defectQualitys = defectQualitys;
}
public List<String> getFileUrls() {
return fileUrls;

@ -98,6 +98,7 @@ public class QcUserMaterial extends BaseEntity {
private String materialId;
private String[] userCodes;
private String[] userNames;
private String label;
private String key;
@ -271,6 +272,14 @@ public class QcUserMaterial extends BaseEntity {
this.selectedValues = selectedValues;
}
public String[] getUserNames() {
return userNames;
}
public void setUserNames(String[] userNames) {
this.userNames = userNames;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -90,6 +90,8 @@ public interface QcCheckTaskIncomeMapper {
List<QcUserMaterialDTO> getUserByMaterial(String materialCode);
List<QcUserMaterialDTO> getCheckUsers(String orderNo);
int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);
int addQcCheckTaskDefects(@Param("list") List<QcCheckTaskDefect> defects);

@ -19,10 +19,7 @@ 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.*;
import java.util.stream.Collectors;
/**
@ -215,6 +212,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
if(StringUtils.isNotBlank(produce.getIncomeBatchNo())){
List<String> batchNos = Arrays.asList(produce.getIncomeBatchNo().split(";"));
List<String> disBatchNos = batchNos.stream().distinct().collect(Collectors.toList());
Collections.sort(disBatchNos);
produce.setIncomeBatchNo(StringUtils.join(disBatchNos, ";"));
}

@ -214,7 +214,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
qcCheckTaskIncome.setCheckManName("");
qcCheckTaskIncome.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskIncome.getMaterialCode());
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getCheckUsers(qcCheckTaskIncome.getOrderNo());
if(CollectionUtils.isEmpty(users)){
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setId(IdUtils.fastSimpleUUID());
@ -599,7 +599,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
break;
}
}
//TODO;today
int n = 0;
QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome();
qcCheckTask.setUpdateBy(updateBy);

@ -176,23 +176,6 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
}
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
} else {//上位机
qcCheckTaskInventory.setCheckManName("");
qcCheckTaskInventory.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskInventory.getMaterialCode());
if (!CollectionUtils.isEmpty(users)) {
for (QcUserMaterialDTO user : users) {
user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId);
user.setCheckNo(qcCheckTaskInventory.getCheckNo());
user.setCreateBy(createBy);
user.setFactoryCode(factoryCode);
user.setCreateTime(nowDate);
}
int m = qcCheckTaskIncomeMapper.addCheckUsers(users);
logger.info("检查人新增" + m + "成功");
}
}
/** 不良品数据插入 */
BigDecimal noOkQuality = new BigDecimal(0);

@ -173,23 +173,6 @@ public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService {
}
//检验人插入
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){

@ -204,7 +204,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
qcCheckTaskProduce.setCheckManName("");
qcCheckTaskProduce.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode());
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getCheckUsers(qcCheckTaskProduce.getOrderNo());
if(!CollectionUtils.isEmpty(users)){
for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID());

@ -76,9 +76,9 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
@Override
@DS("#header.poolName")
public int insertQcUserMaterial(QcUserMaterial qcUserMaterial) {
List<String> userCodes = new ArrayList<>();
/*List<String> userCodes = new ArrayList<>();
userCodes.add(qcUserMaterial.getUserCode());
qcUserMaterial.setUserCodes(userCodes.toArray(new String[userCodes.size()]));
qcUserMaterial.setUserCodes(userCodes.toArray(new String[userCodes.size()]));*/
Date now = DateUtils.getNowDate();
if (StringUtils.isNotEmpty(qcUserMaterial.getUserCodes())) {
@ -89,15 +89,17 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
QcUserMaterial qcUserMaterialDto = null;
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
for (String userCode : qcUserMaterial.getUserCodes()) {
String[] userCodes = qcUserMaterial.getUserCodes();
String[] userNames = qcUserMaterial.getUserNames();
for (int i = 0; i < userCodes.length; i++) {
for (String materialCode : qcUserMaterial.getSelectedValues()) {
//查询物料编码对应的各种信息
qcUserMaterialDto = new QcUserMaterial();
qcUserMaterialDto.setId(IdUtils.fastSimpleUUID());
qcUserMaterialDto.setCreateTime(now);
qcUserMaterialDto.setCreateBy(SecurityUtils.getUsername());
qcUserMaterialDto.setUserCode(userCode);
qcUserMaterialDto.setUserName(qcUserMaterial.getUserName());
qcUserMaterialDto.setUserCode(userCodes[i]);
qcUserMaterialDto.setUserName(userNames[i]);
qcUserMaterialDto.setMaterialCode(materialCode);
qcUserMaterialDto.setMaterialName(qcUserMaterial.getMaterialName());
qcUserMaterialDto.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
@ -151,7 +153,6 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService {
@Override
@DS("#header.poolName")
public List<QcUserMaterial> getList(QcUserMaterial qcUserMaterial) {
List<QcUserMaterial> dto = qcUserMaterialMapper.getUserMaterialListUndo(qcUserMaterial);
qcUserMaterial.setMaterialName(null);
List<QcUserMaterial> selected = qcUserMaterialMapper.getUserMaterialListDo(qcUserMaterial);

@ -338,9 +338,16 @@
</foreach>
</select>
<select id="getUserByMaterial" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select user_code userCode,
user_name userName
from qc_user_material where material_code = #{materialCode}
select user_code userCode,
user_name userName
from qc_user_material where material_code = #{materialCode}
</select>
<select id="getCheckUsers" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select qum.user_code userCode,
qum.user_name userName
from qc_user_material qum
left join pro_order_workorder pow on pow.workorder_code = qum.material_code
where pow.workorder_code = #{orderNo} and pow.del_flag = '0' and qum.del_flag = '0'
</select>
<select id="getCkeckDefectList" resultType="com.op.quality.domain.QcCheckTaskDefect">
select

@ -228,7 +228,7 @@
FROM qc_goal_distribute gd
WHERE gd.belong_goal_id =#{ belongGoalId }
)
<if test="supplierName != null and supplierName != ''">and bs.zh_desc like concat('%', #{supplierName},'%')
<if test="supplierName != null and supplierName != ''">and bp.product_desc_zh like concat('%', #{supplierName},'%')
</if>
</select>

@ -95,7 +95,7 @@
and parent_goal = #{parentGoal}
</if>
</where>
order by id desc
order by id asc
</select>
<select id="selectQcGoalById" parameterType="String"

@ -75,16 +75,19 @@
<select id="getUserMaterialListUndo" resultType="com.op.quality.domain.QcUserMaterial">
select
bp.product_code materialCode,
concat(bp.product_desc_zh,'(',bp.product_code,')') label,
concat(bp.product_desc_zh,'(',bp.product_code,')') materialName,
bp.product_id materialId
from base_product bp
where bp.active_flag = '1' and bp.del_flag = '0'
and bp.product_code not in (
bp.equipment_code materialCode,
concat(bp.equipment_name,'(',bp.equipment_code,')') label,
concat(bp.equipment_name,'(',bp.equipment_code,')') materialName,
bp.equipment_id materialId
from base_equipment bp
where bp.status = '1' and bp.del_flag = '0' and bp.equipment_type_code = 'equ_type_bzx'
and bp.equipment_code not in (
select um.material_code
from qc_user_material um
where um.user_code =#{userCode}
where um.user_code in
<foreach collection="userCodes" item="userCode" open="(" close=")" separator=",">
#{userCode}
</foreach>
)
<if test="materialName != null and materialName != ''">and bp.product_desc_zh like concat('%', #{materialName},
'%')
@ -93,11 +96,14 @@
<select id="getUserMaterialListDo" resultType="com.op.quality.domain.QcUserMaterial">
select distinct um.material_code materialCode,
concat(bp.product_desc_zh,'(',bp.product_code,')') label
concat(bp.equipment_name,'(',bp.equipment_code,')') label
from qc_user_material um
left join base_product bp on um.material_code = bp.product_code
where um.user_code = #{userCode}
<if test="materialName != null and materialName != ''">and bp.product_desc_zh like concat('%', #{materialName},
left join base_equipment bp on um.material_code = bp.equipment_code
where bp.equipment_type_code = 'equ_type_bzx' and um.user_code in
<foreach collection="userCodes" item="userCode" open="(" close=")" separator=",">
#{userCode}
</foreach>
<if test="materialName != null and materialName != ''">and bp.equipment_name like concat('%', #{materialName},
'%')
</if>
</select>

@ -262,7 +262,14 @@ public class WmsToWCSmissionController {
public AjaxResult selectSnCorrelationBarcode(@RequestBody WmsProductPutTrayCode wmsProductPutTrayCode) {
return AjaxResult.success(wmsProductPutService.selectSnCorrelationBarcode(wmsProductPutTrayCode));
}
/**
* --
*
*/
@PostMapping("/selectQueryFinishedProductSales")
public AjaxResult selectQueryFinishedProductSales(@RequestBody WmsSellOutEmbryo wmsSellOutEmbryo) {
return AjaxResult.success(wmsProductPutService.selectQueryFinishedProductSales(wmsSellOutEmbryo));
}
/**
* --

@ -202,6 +202,19 @@ public class WmsSellOutEmbryo extends BaseEntity {
*/
@Excel(name = "预留字段10")
private String attr10;
/**
*
*/
@Excel(name = "有效标记")
private String activeFlag;
public String getActiveFlag() {
return activeFlag;
}
public void setActiveFlag(String activeFlag) {
this.activeFlag = activeFlag;
}
public void setId(String id) {
this.id = id;

@ -100,4 +100,9 @@ public interface IWmsProductPutService {
*
*/
WmsProductPutTrayCode ScanCodeSingleBox(WmsProductPutTrayCode wmsProductPutTrayCode);
/**
* --
*
*/
List< WmsSellOutEmbryo> selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo);
}

@ -59,6 +59,9 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
@Autowired
private WmsProductPutTrayCodeMapper wmsProductPutTrayCodeMapper;
@Autowired
private WmsSellOutEmbryoMapper wmsSellOutEmbryoMapper;
/**
*
*
@ -723,4 +726,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
return null;
}
@Override
public List<WmsSellOutEmbryo> selectQueryFinishedProductSales(WmsSellOutEmbryo wmsSellOutEmbryo) {
//wms_sell_out_embryo
DynamicDataSourceContextHolder.push("ds_" + wmsSellOutEmbryo.getFactoryCode());
wmsSellOutEmbryo.setActiveFlag("1");
List<WmsSellOutEmbryo> wmsSellOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsSellOutEmbryoList(wmsSellOutEmbryo);
return wmsSellOutEmbryoList;
}
}

@ -296,6 +296,7 @@
LEFT JOIN (SELECT Produce_Code,Material_Code,SUM(Plan_Number) Plan_Number FROM ods_procure_out_order GROUP BY Produce_Code,Material_Code)AS out_order ON out_order.Produce_Code= mes_prepare.workorder_name AND out_order.Material_Code=mes_prepare_detail.material_code
WHERE
mes_prepare_detail.prepare_id= #{ID}
ORDER BY mes_prepare_detail.recoil
</select>
<insert id="insertWmsRawMissionOut" >
insert into wms_raw_mission_out(id,

@ -41,10 +41,11 @@
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="activeFlag" column="active_flag"/>
</resultMap>
<sql id="selectWmsSellOutEmbryoVo">
select id, delivery_order, Item_number, factory_code, wh_code, wa_code, wl_code, delivery_place, product_name, product_code, product_sort, specification, unit_of_measure, lot_number, plan_quantity, out_quantity, status, SAP_status, SAP_proof, SAP_message, out_date, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, create_by, create_time, update_by, update_time, remark from wms_sell_out_embryo
select id, delivery_order, Item_number,active_flag, factory_code, wh_code, wa_code, wl_code, delivery_place, product_name, product_code, product_sort, specification, unit_of_measure, lot_number, plan_quantity, out_quantity, status, SAP_status, SAP_proof, SAP_message, out_date, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, create_by, create_time, update_by, update_time, remark from wms_sell_out_embryo
</sql>
<select id="selectWmsSellOutEmbryoList" parameterType="WmsSellOutEmbryo" resultMap="WmsSellOutEmbryoResult">
@ -72,6 +73,7 @@
<if test="sapProof != null and sapProof != ''">and SAP_proof = #{sapProof}</if>
<if test="sapMessage != null and sapMessage != ''">and SAP_message = #{sapMessage}</if>
<if test="outDate != null ">and out_date = #{outDate}</if>
<if test="activeFlag != null and activeFlag != ''">and active_flag = #{activeFlag}</if>
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''">and attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''">and attr3 = #{attr3}</if>

Loading…
Cancel
Save