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

master
zhaoxiaolin 9 months ago
parent 56553b4e8c
commit 6ad5ed5fdd

@ -40,12 +40,18 @@ public class MesPrepareDetailController extends BaseController {
* @return
*/
@RequiresPermissions("mes:prepareDetail:export")
@Log(title = "mes备料打印", businessType = BusinessType.EXPORT)
@GetMapping("/printPrepareByCode/{workorderCode}")
public AjaxResult printPrepareByCode(@PathVariable("workorderCode") String workorderCode) {
return mesPrepareDetailService.printPrepareByCode(workorderCode);
@Log(title = "mes备料打印生产物料", businessType = BusinessType.EXPORT)
@GetMapping("/printPrepareByCode/{workorderCode}/{recoil}")
public AjaxResult printPrepareByCode(@PathVariable("workorderCode") String workorderCode,@PathVariable("recoil") String recoil) {
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
*/

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

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

@ -66,7 +66,7 @@ public class MesPrepareDetail extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date productDate;
private String productDateStr;
/**
*
*/
@ -118,6 +118,23 @@ public class MesPrepareDetail extends BaseEntity {
private String buyFlag;
private String workorderCode;
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() {
return parentOrder;

@ -68,8 +68,10 @@ public interface MesPrepareDetailMapper {
/**
* idlist
*
* @param workorderCode
* @param dto
* @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<MesMachineReport> getMachineProductionList(MesMachineReport mesMachineReport);
String getUploadStatusByReportCode(String reportCode);
int deleteReport(String reportCode);
int deleteReportConsume(String reportCode);
}

@ -65,5 +65,7 @@ public interface IMesPrepareDetailService {
*
* @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);
List<DynamicColumnVo> getMachineProductionTitle(MesMachineReport mesMachineReport);
int deleteReportNow(String reportCode);
}

@ -102,9 +102,35 @@ public class MesPrepareDetailServiceImpl implements IMesPrepareDetailService {
*/
@Override
@DS("#header.poolName")
public AjaxResult printPrepareByCode(String workorderCode) {
public AjaxResult printPrepareByCode(String workorderCode,String recoil) {
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.setMesPrepare(mesPrepare);
printPrepareVo.setMesPrepareDetailList(mesPrepareDetailList);

@ -576,6 +576,18 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
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
@DS("#header.poolName")
public List<Map<String, Object>> getMachineProductionList(MesMachineReport mesMachineReport) {

@ -65,7 +65,8 @@
where record_id = #{recordId}
</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
mp.workorder_name workorderCode,
mpd.material_code materialCode,
@ -76,13 +77,34 @@
mpd.fund_quanlity fundQuanlity,
mpd.factory_code factoryCode,
mpd.recoil,
ow.product_date productDate
ow.product_date productDate,
ow.prod_line_code prodLineCode
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
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}
and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0'
order by mpd.recoil
</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 into mes_prepare_detail

@ -563,7 +563,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mrw.use_man useMan,
mrw.create_time createTime,
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
left join pro_order_workorder pow on mrw.workorder_code = pow.workorder_code
where mrw.del_flag='0' and pow.del_flag = '0'
@ -782,9 +783,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pow.product_code,
pow.product_name
</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
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
@ -999,4 +1002,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
set del_flag = '1'
where record_id = #{id}
</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>

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

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

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

@ -126,6 +126,32 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
public List<QcCheckTaskIncome> selectQcCheckTaskIncomeList(QcCheckTaskIncome qcCheckTaskIncome) {
qcCheckTaskIncome.setDelFlag("0");
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);
}
@ -272,34 +298,34 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
}
int s = qcCheckTaskDetailMapper.addBatch(items);
//发企业微信--------------------开始(跟班组无关)
SysNoticeGroup noticeQo = new SysNoticeGroup();
noticeQo.setNoticeId(6L);
List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
if(!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>();
//去主库查微信id
DynamicDataSourceContextHolder.push("master");// 这是数据源的key
List<String> userCodes = users.stream()
.map(QcUserMaterialDTO::getUserCode)
.collect(Collectors.toList());
List<String> wxids = qcCheckTaskIncomeMapper.getWxId(userCodes);
for (String wxid : wxids) {
WechartDTO wechart0 = new WechartDTO();
wechart0.setUserId(wxid);
wechart0.setText(notices.get(0).getNoticeContent());
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();
}
//发企业微信--------------------结束
}
// //发企业微信--------------------开始(跟班组无关)
// SysNoticeGroup noticeQo = new SysNoticeGroup();
// noticeQo.setNoticeId(6L);
// List<SysNoticeGroup> notices = qcCheckTaskIncomeMapper.getNotices(noticeQo);
// if(!CollectionUtils.isEmpty(notices)) {
// List<WechartDTO> wecharts = new ArrayList<>();
// //去主库查微信id
// DynamicDataSourceContextHolder.push("master");// 这是数据源的key
// List<String> userCodes = users.stream()
// .map(QcUserMaterialDTO::getUserCode)
// .collect(Collectors.toList());
// List<String> wxids = qcCheckTaskIncomeMapper.getWxId(userCodes);
// for (String wxid : wxids) {
// WechartDTO wechart0 = new WechartDTO();
// wechart0.setUserId(wxid);
// wechart0.setText(notices.get(0).getNoticeContent());
// 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 s;
}

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

Loading…
Cancel
Save