领料单升级+报工批次删除功能

master
zhaoxiaolin 10 months ago
parent 56553b4e8c
commit 6ad5ed5fdd

@ -40,12 +40,18 @@ public class MesPrepareDetailController extends BaseController {
* @return * @return
*/ */
@RequiresPermissions("mes:prepareDetail:export") @RequiresPermissions("mes:prepareDetail:export")
@Log(title = "mes备料打印", businessType = BusinessType.EXPORT) @Log(title = "mes备料打印生产物料", businessType = BusinessType.EXPORT)
@GetMapping("/printPrepareByCode/{workorderCode}") @GetMapping("/printPrepareByCode/{workorderCode}/{recoil}")
public AjaxResult printPrepareByCode(@PathVariable("workorderCode") String workorderCode) { public AjaxResult printPrepareByCode(@PathVariable("workorderCode") String workorderCode,@PathVariable("recoil") String recoil) {
return mesPrepareDetailService.printPrepareByCode(workorderCode); return mesPrepareDetailService.printPrepareByCode(workorderCode,recoil);
} }
@RequiresPermissions("mes:prepareDetail:export")
@Log(title = "mes备料打印某天的反冲物料", businessType = BusinessType.EXPORT)
@GetMapping("/printPrepareXByCode/{productDate}")
public AjaxResult printPrepareXByCode(@PathVariable("productDate") String productDate) {
return mesPrepareDetailService.printPrepareXByCode(productDate);
}
/** /**
* mes * mes
*/ */

@ -533,6 +533,13 @@ public class MesReportWorkController extends BaseController {
public AjaxResult deleteBomRowNow(@PathVariable String id) { public AjaxResult deleteBomRowNow(@PathVariable String id) {
return toAjax(mesReportWorkService.deleteBomRowNow(id)); return toAjax(mesReportWorkService.deleteBomRowNow(id));
} }
/**删除报工数据**/
@DeleteMapping("/deleteReportNow/{reportCode}")
public AjaxResult deleteReportNow(@PathVariable String reportCode) {
return toAjax(mesReportWorkService.deleteReportNow(reportCode));
}
//获取仓库下拉列表 //获取仓库下拉列表
@GetMapping("/getWarehouseList") @GetMapping("/getWarehouseList")
public List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume) { public List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume) {

@ -173,9 +173,17 @@ public class MesPrepare extends BaseEntity {
*/ */
@Excel(name = "工厂编码") @Excel(name = "工厂编码")
private String factoryCode; private String factoryCode;
private String prodLineCode;
private String dayStr; private String dayStr;
public String getProdLineCode() {
return prodLineCode;
}
public void setProdLineCode(String prodLineCode) {
this.prodLineCode = prodLineCode;
}
public String getWorkorderCodeSap() { public String getWorkorderCodeSap() {
return workorderCodeSap; return workorderCodeSap;
} }

@ -66,7 +66,7 @@ public class MesPrepareDetail extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date productDate; private Date productDate;
private String productDateStr;
/** /**
* *
*/ */
@ -118,6 +118,23 @@ public class MesPrepareDetail extends BaseEntity {
private String buyFlag; private String buyFlag;
private String workorderCode; private String workorderCode;
private String parentOrder; private String parentOrder;
private String prodLineCode;
public String getProductDateStr() {
return productDateStr;
}
public void setProductDateStr(String productDateStr) {
this.productDateStr = productDateStr;
}
public String getProdLineCode() {
return prodLineCode;
}
public void setProdLineCode(String prodLineCode) {
this.prodLineCode = prodLineCode;
}
public String getParentOrder() { public String getParentOrder() {
return parentOrder; return parentOrder;

@ -68,8 +68,10 @@ public interface MesPrepareDetailMapper {
/** /**
* idlist * idlist
* *
* @param workorderCode * @param dto
* @return * @return
*/ */
List<MesPrepareDetail> selectPrintPrepareDetailList(String workorderCode); List<MesPrepareDetail> selectPrintPrepareDetailList(MesPrepareDetail dto);
List<MesPrepareDetail> selectPreDetailHzList(MesPrepareDetail qodetail);
} }

@ -157,4 +157,9 @@ public interface MesReportWorkMapper {
List<MesReportWork> getProductProData(MesReportWork dto); List<MesReportWork> getProductProData(MesReportWork dto);
List<MesMachineReport> getMachineProductionList(MesMachineReport mesMachineReport); List<MesMachineReport> getMachineProductionList(MesMachineReport mesMachineReport);
String getUploadStatusByReportCode(String reportCode);
int deleteReport(String reportCode);
int deleteReportConsume(String reportCode);
} }

@ -65,5 +65,7 @@ public interface IMesPrepareDetailService {
* *
* @return * @return
*/ */
AjaxResult printPrepareByCode(String workorderCode); AjaxResult printPrepareByCode(String workorderCode,String recoil);
AjaxResult printPrepareXByCode(String productDate);
} }

@ -127,4 +127,6 @@ public interface IMesReportWorkService {
LineChartDto getMonthProData(MesReportProduction mesReportProduction); LineChartDto getMonthProData(MesReportProduction mesReportProduction);
List<DynamicColumnVo> getMachineProductionTitle(MesMachineReport mesMachineReport); List<DynamicColumnVo> getMachineProductionTitle(MesMachineReport mesMachineReport);
int deleteReportNow(String reportCode);
} }

@ -102,9 +102,35 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService {
*/ */
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public AjaxResult printPrepareByCode(String workorderCode) { public AjaxResult printPrepareByCode(String workorderCode,String recoil) {
MesPrepare mesPrepare = mesPrepareMapper.selectMesPrepareByCode(workorderCode); MesPrepare mesPrepare = mesPrepareMapper.selectMesPrepareByCode(workorderCode);
List<MesPrepareDetail> mesPrepareDetailList = mesPrepareDetailMapper.selectPrintPrepareDetailList(workorderCode); MesPrepareDetail qodetail = new MesPrepareDetail();
qodetail.setWorkorderCode(workorderCode);
qodetail.setRecoil("0".equals(recoil)?"":recoil);
List<MesPrepareDetail> mesPrepareDetailList = mesPrepareDetailMapper.selectPrintPrepareDetailList(qodetail);
mesPrepare.setProdLineCode(mesPrepareDetailList.get(0).getProdLineCode().split(",")[1]
.replace("\"","")
.replace("\"","")
.replace("]]",""));
PrintPrepareVo printPrepareVo = new PrintPrepareVo();
printPrepareVo.setMesPrepare(mesPrepare);
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList);
return AjaxResult.success(printPrepareVo);
}
/**
*
*
* @return
*/
@Override
@DS("#header.poolName")
public AjaxResult printPrepareXByCode(String productDate) {
MesPrepare mesPrepare = new MesPrepare();
MesPrepareDetail qodetail = new MesPrepareDetail();
qodetail.setProductDateStr(productDate);
qodetail.setRecoil("X");
List<MesPrepareDetail> mesPrepareDetailList = mesPrepareDetailMapper.selectPreDetailHzList(qodetail);
PrintPrepareVo printPrepareVo = new PrintPrepareVo(); PrintPrepareVo printPrepareVo = new PrintPrepareVo();
printPrepareVo.setMesPrepare(mesPrepare); printPrepareVo.setMesPrepare(mesPrepare);
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList); printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList);

@ -576,6 +576,18 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return dynamicColumn; return dynamicColumn;
} }
@Override
@DS("#header.poolName")
public int deleteReportNow(String reportCode) {
String uploadStatus = mesReportWorkMapper.getUploadStatusByReportCode(reportCode);
if("1".equals(uploadStatus)){
return 0;
}
int reportNum = mesReportWorkMapper.deleteReport(reportCode);
int consumeNum = mesReportWorkMapper.deleteReportConsume(reportCode);
return reportNum;
}
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public List<Map<String, Object>> getMachineProductionList(MesMachineReport mesMachineReport) { public List<Map<String, Object>> getMachineProductionList(MesMachineReport mesMachineReport) {

@ -65,7 +65,8 @@
where record_id = #{recordId} where record_id = #{recordId}
</select> </select>
<select id="selectPrintPrepareDetailList" parameterType="String" resultType="com.op.mes.domain.MesPrepareDetail"> <select id="selectPrintPrepareDetailList" parameterType="com.op.mes.domain.MesPrepareDetail"
resultType="com.op.mes.domain.MesPrepareDetail">
select select
mp.workorder_name workorderCode, mp.workorder_name workorderCode,
mpd.material_code materialCode, mpd.material_code materialCode,
@ -76,13 +77,34 @@
mpd.fund_quanlity fundQuanlity, mpd.fund_quanlity fundQuanlity,
mpd.factory_code factoryCode, mpd.factory_code factoryCode,
mpd.recoil, mpd.recoil,
ow.product_date productDate ow.product_date productDate,
ow.prod_line_code prodLineCode
from pro_order_workorder ow from pro_order_workorder ow
left join mes_prepare mp on ow.workorder_code = mp.workorder_code 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 left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
where ow.belong_work_order = #{workorderCode} where ow.belong_work_order = #{workorderCode}
and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0'
order by mpd.recoil order by mpd.recoil
</select> </select>
<select id="selectPreDetailHzList" resultType="com.op.mes.domain.MesPrepareDetail">
select
mpd.material_code materialCode,
mpd.material_name materialName,
sum(mpd.quantity) quantity,
mpd.unit,
sum(CONVERT(DECIMAL(10, 3), mpd.fund_quanlity)) fundQuanlity,
mpd.factory_code factoryCode,mpd.recoil
from pro_order_workorder ow
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.product_date = #{productDateStr}
and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0'
GROUP BY mpd.material_code,
mpd.material_name,
mpd.unit,
mpd.factory_code,mpd.recoil
order by mpd.material_code
</select>
<insert id="insertMesPrepareDetail" parameterType="MesPrepareDetail"> <insert id="insertMesPrepareDetail" parameterType="MesPrepareDetail">
insert into mes_prepare_detail insert into mes_prepare_detail

@ -563,7 +563,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mrw.use_man useMan, mrw.use_man useMan,
mrw.create_time createTime, mrw.create_time createTime,
pow.workorder_code_sap workorderCodeSap, pow.workorder_code_sap workorderCodeSap,
mrw.remark,mrw.report_code reportCode mrw.remark,mrw.report_code reportCode,
mrw.machine_code machineCode
from mes_report_work mrw from mes_report_work mrw
left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code
where mrw.del_flag='0' and pow.del_flag = '0' where mrw.del_flag='0' and pow.del_flag = '0'
@ -782,7 +783,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pow.product_code, pow.product_code,
pow.product_name pow.product_name
</select> </select>
<select id="getUploadStatusByReportCode" resultType="java.lang.String">
select top 1 upload_status from mes_report_work where report_code = #{reportCode}
</select>
<insert id="insertMesReportWork" parameterType="MesReportWork"> <insert id="insertMesReportWork" parameterType="MesReportWork">
insert into mes_report_work insert into mes_report_work
@ -999,4 +1002,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
set del_flag = '1' set del_flag = '1'
where record_id = #{id} where record_id = #{id}
</delete> </delete>
<delete id="deleteReport">
update mes_report_work set del_flag = '1' where report_code = #{reportCode}
</delete>
<delete id="deleteReportConsume">
update mes_report_work_consume set del_flag = '1' where report_code = #{reportCode}
</delete>
</mapper> </mapper>

@ -392,7 +392,7 @@ public class OpenServiceImpl implements OpenService {
qcCheckTaskProduce.setFactoryCode(factoryCode); qcCheckTaskProduce.setFactoryCode(factoryCode);
qcCheckTaskProduce.setCreateTime(nowDate); qcCheckTaskProduce.setCreateTime(nowDate);
qcCheckTaskProduce.setTypeCode("produce");//大检验节点 qcCheckTaskProduce.setTypeCode("produce");//大检验节点
qcCheckTaskProduce.setIncomeTime(qcCheckTaskProduce.getProduceDate()); qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate());
qcCheckTaskProduce.setSupplierCode(qcCheckTaskProduce.getCarCode()); qcCheckTaskProduce.setSupplierCode(qcCheckTaskProduce.getCarCode());
qcCheckTaskProduce.setSupplierName(qcCheckTaskProduce.getCarName()); qcCheckTaskProduce.setSupplierName(qcCheckTaskProduce.getCarName());
qcCheckTaskProduce.setCheckManName(null); qcCheckTaskProduce.setCheckManName(null);

@ -826,13 +826,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity())
.subtract(new BigDecimal(proOrder.getAtrr1())); .subtract(new BigDecimal(proOrder.getAtrr1()));
sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量
logger.info("母订单" + proOrder.getOrderCode() + // logger.info("母订单" + proOrder.getOrderCode() +
"订单数量变更:修改前" + proOrder.getQuantity() + "," + // "订单数量变更:修改前" + proOrder.getQuantity() + "," +
"已拆数量" + proOrder.getAtrr1() + "," + // "已拆数量" + proOrder.getAtrr1() + "," +
"给sap汇报数量" + newSapQuantityNum.toString()); // "给sap汇报数量" + newSapQuantityNum.toString());
R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 // R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据
logger.info("母订单" + proOrder.getOrderCode() + // logger.info("母订单" + proOrder.getOrderCode() +
"订单数量变更结果:" + rSapChange.getCode() + "," + rSapChange.getMsg()); // "订单数量变更结果:" + rSapChange.getCode() + "," + rSapChange.getMsg());
} }
// 获得对应工单---------------------------------------------------------------------------- // 获得对应工单----------------------------------------------------------------------------
@ -1015,13 +1015,13 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity())
.subtract(new BigDecimal(proOrder.getAtrr1())); .subtract(new BigDecimal(proOrder.getAtrr1()));
sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量
logger.info("母订单" + proOrder.getOrderCode() + // logger.info("母订单" + proOrder.getOrderCode() +
"订单数量变更:修改前" + proOrder.getQuantity() + "," + // "订单数量变更:修改前" + proOrder.getQuantity() + "," +
"已拆数量" + proOrder.getAtrr1() + "," + // "已拆数量" + proOrder.getAtrr1() + "," +
"给sap汇报数量" + newSapQuantityNum.toString()); // "给sap汇报数量" + newSapQuantityNum.toString());
R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 // R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据
logger.info("母订单" + proOrder.getOrderCode() + // logger.info("母订单" + proOrder.getOrderCode() +
"订单数量变更结果:" + rSapChange.getCode() + "," + rSapChange.getMsg()); // "订单数量变更结果:" + rSapChange.getCode() + "," + rSapChange.getMsg());
} }
// 获得对应工单---------------------------------------------------------------------------- // 获得对应工单----------------------------------------------------------------------------
@ -1144,7 +1144,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
public AjaxResult checkWorkOrder(String id) { public AjaxResult checkWorkOrder(String id) {
ProOrderWorkorder proOrderWorkorder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(id); ProOrderWorkorder proOrderWorkorder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(id);
if (!(proOrderWorkorder.getStatus().equals("w0") || proOrderWorkorder.getStatus().equals("w1"))) { if (!(proOrderWorkorder.getStatus().equals("w0") || proOrderWorkorder.getStatus().equals("w1"))) {
return error("工单已生产,不可变更!"); return error("工单只有未派发和已派发才可变更!");
} }
return success(); return success();
} }

@ -126,6 +126,7 @@
LEFT JOIN pro_order_workorder pow LEFT JOIN pro_order_workorder pow
ON powb.workorder_id = pow.workorder_id ON powb.workorder_id = pow.workorder_id
WHERE pow.workorder_id = #{workorderId} and powb.del_flag = '0' WHERE pow.workorder_id = #{workorderId} and powb.del_flag = '0'
order by powb.batch_code
</select> </select>
<select id="selectPackageLine" resultType="com.op.plan.domain.ProLine"> <select id="selectPackageLine" resultType="com.op.plan.domain.ProLine">

@ -126,6 +126,32 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
public List<QcCheckTaskIncome> selectQcCheckTaskIncomeList(QcCheckTaskIncome qcCheckTaskIncome) { public List<QcCheckTaskIncome> selectQcCheckTaskIncomeList(QcCheckTaskIncome qcCheckTaskIncome) {
qcCheckTaskIncome.setDelFlag("0"); qcCheckTaskIncome.setDelFlag("0");
qcCheckTaskIncome.setTypeCode("material"); qcCheckTaskIncome.setTypeCode("material");
// //发企业微信--------------------开始(跟班组无关)
// SysNoticeGroup noticeQo = new SysNoticeGroup();
// noticeQo.setNoticeId(6L);
// List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
// if(!CollectionUtils.isEmpty(notices)) {
// List<WechartDTO> wecharts = new ArrayList<>();
//
// List<String> wxids = new ArrayList<>();
// wxids.add("MES002");
// for (String wxid : wxids) {
// WechartDTO wechart0 = new WechartDTO();
// wechart0.setUserId(wxid);
// wechart0.setText("您好,有一条新的来料检验任务,需要您登陆手持进行处理。");
// wecharts.add(wechart0);
// }
// logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
// if (!CollectionUtils.isEmpty(wecharts)) {
// new Thread(() -> {
// AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts);
// logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result));
//
// }).start();
// }
// //发企业微信--------------------结束
// }
return qcCheckTaskIncomeMapper.selectQcCheckTaskIncomeList(qcCheckTaskIncome); return qcCheckTaskIncomeMapper.selectQcCheckTaskIncomeList(qcCheckTaskIncome);
} }
@ -272,34 +298,34 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
} }
int s = qcCheckTaskDetailMapper.addBatch(items); int s = qcCheckTaskDetailMapper.addBatch(items);
//发企业微信--------------------开始(跟班组无关) // //发企业微信--------------------开始(跟班组无关)
SysNoticeGroup noticeQo = new SysNoticeGroup(); // SysNoticeGroup noticeQo = new SysNoticeGroup();
noticeQo.setNoticeId(6L); // noticeQo.setNoticeId(6L);
List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo); // List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
if(!CollectionUtils.isEmpty(notices)) { // if(!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>(); // List<WechartDTO> wecharts = new ArrayList<>();
//去主库查微信id // //去主库查微信id
DynamicDataSourceContextHolder.push("master");// 这是数据源的key // DynamicDataSourceContextHolder.push("master");// 这是数据源的key
List<String> userCodes = users.stream() // List<String> userCodes = users.stream()
.map(QcUserMaterialDTO::getUserCode) // .map(QcUserMaterialDTO::getUserCode)
.collect(Collectors.toList()); // .collect(Collectors.toList());
List<String> wxids = qcCheckTaskIncomeMapper.getWxId(userCodes); // List<String> wxids = qcCheckTaskIncomeMapper.getWxId(userCodes);
for (String wxid : wxids) { // for (String wxid : wxids) {
WechartDTO wechart0 = new WechartDTO(); // WechartDTO wechart0 = new WechartDTO();
wechart0.setUserId(wxid); // wechart0.setUserId(wxid);
wechart0.setText(notices.get(0).getNoticeContent()); // wechart0.setText(notices.get(0).getNoticeContent());
wecharts.add(wechart0); // wecharts.add(wechart0);
} // }
logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts)); // logger.info("来料检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
if (!CollectionUtils.isEmpty(wecharts)) { // if (!CollectionUtils.isEmpty(wecharts)) {
new Thread(() -> { // new Thread(() -> {
AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts); // AjaxResult result = remoteOpenService.sendWeChartMessage(wecharts);
logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result)); // logger.info("来料检验企业微信提醒结果:" + JSONObject.toJSONString(result));
//
}).start(); // }).start();
} // }
//发企业微信--------------------结束 // //发企业微信--------------------结束
} // }
return s; return s;
} }

@ -254,6 +254,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
//试产 //试产
qcCheckTaskProduce.setProductType("c"); qcCheckTaskProduce.setProductType("c");
} }
qcCheckTaskProduce.setIncomeTime(DateUtils.getNowDate());
qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce);
/**qc_check_task_detail**/ /**qc_check_task_detail**/

Loading…
Cancel
Save