Commit 7887ded3 by liuyang

2024-08-27 生产订单添加改派功能和撤销派工功能

parent 36353c81
......@@ -11,6 +11,8 @@ import com.baosight.hpjx.hp.sc.domain.HPSC005;
import com.baosight.hpjx.hp.sc.domain.HPSC005A;
import com.baosight.hpjx.hp.sc.tools.HPSCTools;
import com.baosight.hpjx.hp.xs.tools.HPXSTools;
import com.baosight.hpjx.hp.zl.domain.HPZL001;
import com.baosight.hpjx.hp.zl.tools.HPZLTools;
import com.baosight.hpjx.util.AssertUtils;
import com.baosight.hpjx.util.CommonMethod;
import com.baosight.hpjx.util.EiInfoUtils;
......@@ -21,12 +23,11 @@ import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
import com.baosight.iplat4j.ed.util.SequenceGenerator;
import org.apache.commons.collections.CollectionUtils;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* 生产任务
......@@ -274,7 +275,74 @@ public class ServiceHPSC005A extends ServiceBase {
}
return inInfo;
}
/**
* 分派
*
* @param inInfo
* @return
*/
@OperationLogAnnotation(operModul = "拆单派工",operType = "改派",operDesc = "生产订单-拆单派工A-改派")
public EiInfo assignChange(EiInfo inInfo) {
try {
String[] prodOrderNos = inInfo.getString("prodOrderNos").split(","); //生产订单号
String factoryCode = inInfo.getString("factoryCode");
String factoryName = inInfo.getString("factoryName");
String groupCode = inInfo.getString("groupCode");
String groupName = inInfo.getString("groupName");
// 校验主订单是否已分派
List<HPSC005> hgsc005List = HPSCTools.HpSc005.get(Arrays.asList(prodOrderNos));
AssertUtils.isTrue(CollectionUtils.isEmpty(hgsc005List), "未找到生产订单信息");
//List<String> prodOrderNos = hgsc005List.stream().map(HPSC005::getProdOrderNo).collect(Collectors.toList());
List<HPSC005A> hgsc005AList = HPSCTools.HpSc005a.getByProdOrderNo(Arrays.asList(prodOrderNos));
List<HPZL001> hpzl001List = HPZLTools.getByprodOrderNos(Arrays.asList(prodOrderNos));
AssertUtils.isTrue(CollectionUtils.isNotEmpty(hpzl001List), "生产订单已经进入质检环节,无法改派");
// 锁主单号
HPSCTools.HpSc005a.lock(Arrays.asList(prodOrderNos));
for (HPSC005A hgsc005A : hgsc005AList) {
hgsc005A.setOrgNo(groupCode);
hgsc005A.setOrgName(groupName);
hgsc005A.setFactoryCode(factoryCode);
hgsc005A.setFactoryName(factoryName);
DaoUtils.update("HPSC005A.updateFactoryCode", hgsc005A);
}
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + prodOrderNos.length + "]条数据改派成功!");
} catch (Exception e) {
LogUtils.setMsg(inInfo, e, "改派失败");
}
return inInfo;
}
@OperationLogAnnotation(operModul = "拆单派工",operType = "撤销",operDesc = "生产订单-拆单派工A-撤销")
public EiInfo revocation(EiInfo inInfo) {
try {
String prodOrderNo = inInfo.getString("prodOrderNo"); //生产订单号
// 校验主订单是否已分派
HPSC005 hgsc005 = HPSCTools.HpSc005.get(prodOrderNo);
AssertUtils.isEmpty(Collections.singleton(hgsc005), "未找到生产订单信息");
//List<String> prodOrderNos = hgsc005List.stream().map(HPSC005::getProdOrderNo).collect(Collectors.toList());
List<HPSC005A> hgsc005AList = HPSCTools.HpSc005a.getByProdOrderNo(prodOrderNo);
List<HPZL001> hpzl001List = HPZLTools.getByprodOrderNos(Arrays.asList(prodOrderNo));
AssertUtils.isTrue(CollectionUtils.isNotEmpty(hpzl001List), "生产订单已经进入质检环节,无法撤销");
hgsc005.setStatus(ProdOrderStatusEnum.NOT_ASSIGN.getCode());
hgsc005.setAssignedNum(BigDecimal.ZERO);
hgsc005.setUnassignedNum(hgsc005.getNum());
DaoUtils.update(HPSC005.UPDATE, hgsc005);
for (HPSC005A hgsc005A: hgsc005AList) {
DaoUtils.update(HPSC005A.DELETE, hgsc005A);
}
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + 1 + "]条数据撤销成功!");
} catch (Exception e) {
LogUtils.setMsg(inInfo, e, "撤销失败");
}
return inInfo;
}
/**
* 设置基础信息
*
......
......@@ -129,6 +129,9 @@
<isNotEmpty prepend=" AND " property="matIds">
MAT_ID IN <iterate close=")" open="(" conjunction="," property="matIds">#matIds[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="prodOrderNos">
PROD_ORDER_NO IN <iterate close=")" open="(" conjunction="," property="prodOrderNos">#prodOrderNos[]#</iterate>
</isNotEmpty>
</sql>
<sql id="authCondition">
......
......@@ -92,6 +92,9 @@
<isNotEmpty prepend=" AND " property="prodTaskNos">
PROD_TASK_NO IN <iterate close=")" open="(" conjunction="," property="prodTaskNos">#prodTaskNos[]#</iterate>
</isNotEmpty>
<isNotEmpty prepend=" AND " property="prodOrderNos">
PROD_ORDER_NO IN <iterate close=")" open="(" conjunction="," property="prodOrderNos">#prodOrderNos[]#</iterate>
</isNotEmpty>
</sql>
<!-- 公共修改字段 -->
......@@ -179,6 +182,18 @@
WHERE ID = #id#
</update>
<!-- 工厂生产班组 -->
<update id="updateFactoryCode">
UPDATE ${hpjxSchema}.T_HPSC005A
SET
FACTORY_CODE = #factoryCode#,
FACTORY_NAME = #factoryName#,
ORG_NO = #orgNo#,
ORG_NAME = #orgName#,
<include refid="updateRevise"/>
WHERE ID = #id#
</update>
<!-- 已完成数量 -->
<update id="updateCompleteNum">
UPDATE ${hpjxSchema}.T_HPSC005A
......
......@@ -723,6 +723,20 @@ public class HPSCTools {
AssertUtils.isEmpty(results, String.format("生产任务ID[%s]信息不存在", id));
return results.get(0);
}
/**
* 查询
*
* @param ids
* @return
*/
public static List<HPSC005> getById(List<String> ids) {
AssertUtils.isNull(ids, "生产任务ID不能为空");
Map queryMap = new HashMap();
queryMap.put("ids", ids);
List<HPSC005> results = DaoBase.getInstance().query(HPSC005.QUERY, queryMap);
AssertUtils.isEmpty(results, String.format("生产任务ID[%s]信息不存在", ids));
return CollectionUtils.isEmpty(results)?null:results;
}
/**
* 查询
......@@ -798,6 +812,20 @@ public class HPSCTools {
}
/**
* 批量查询订单号
*
* @param prodOrderNos
* @return
*/
public static List<HPSC005> get(List<String> prodOrderNos) {
AssertUtils.isEmpty(prodOrderNos, "生产订单号不能为空");
Map queryMap = new HashMap();
queryMap.put("prodOrderNos", prodOrderNos);
List<HPSC005> results = DaoBase.getInstance().query(HPSC005.QUERY, queryMap);
return CollectionUtils.isEmpty(results)?null:results;
}
/**
* 查询
*
* @param matId 物料ID
......@@ -951,7 +979,7 @@ public class HPSCTools {
/**
* 查询信息
*
* @param prodTaskNo
* @param prodTaskNo 生产任务单号
* @return
*/
public static HPSC005A get(String prodTaskNo) {
......@@ -966,7 +994,7 @@ public class HPSCTools {
/**
* 查询信息
*
* @param prodTaskNos
* @param prodTaskNos 生产任务单号
* @return
*/
public static List<HPSC005A> list(List<String> prodTaskNos) {
......@@ -1004,6 +1032,19 @@ public class HPSCTools {
queryMap.put("prodOrderNo", prodOrderNo);
return DaoBase.getInstance().query(HPSC005A.QUERY, queryMap);
}
/**
* 查询信息
*
* @param prodOrderNos 生产订单号
* @return
*/
public static List<HPSC005A> getByProdOrderNo(List<String> prodOrderNos) {
AssertUtils.isEmpty(prodOrderNos, "生产订单号不能为空");
Map queryMap = new HashMap();
queryMap.put("prodOrderNos", prodOrderNos);
return DaoBase.getInstance().query(HPSC005A.QUERY, queryMap);
}
}
......
......@@ -106,6 +106,9 @@
<isNotEmpty prepend=" AND " property="status">
STATUS = #status#
</isNotEmpty>
<isNotEmpty prepend=" AND " property="prodOrderNos">
PROD_ORDER_NO IN <iterate close=")" open="(" conjunction="," property="prodOrderNos">#prodOrderNos[]#</iterate>
</isNotEmpty>
</sql>
<!-- 公共修改字段 -->
......
......@@ -49,6 +49,23 @@ public class HPZLTools {
AssertUtils.isEmpty(results, String.format("质检单号[%s]信息不存在", checkNo));
return results.get(0);
}
/**
* 查询质检生产订单
*
* @param prodOrderNos
* @return
*/
public static List<HPZL001> getByprodOrderNos(List<String> prodOrderNos) {
if (CollectionUtils.isEmpty(prodOrderNos)){
return null;
}
Map queryMap = new HashMap();
queryMap.put("prodOrderNos", prodOrderNos);
queryMap.put("deleteFlag", 0);
List<HPZL001> results = DaoBase.getInstance().query(HPZL001.QUERY, queryMap);
return CollectionUtils.isEmpty(results)? null:results;
}
/**
......
let ids = [];
var prodOrderNos = [];
$(function () {
// 查询
......@@ -9,6 +10,8 @@ $(function () {
// 批量分派
$("#ASSIGN").on("click", assign);
// 批量改派
$("#BNT_ASSIGN_CHANGE").on("click", assignChange);
IPLATUI.EFGrid.result = {
pageable: {
......@@ -29,6 +32,10 @@ $(function () {
}
template += '<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+ 'onclick="showGroupDetail(\'' + prodOrderNo + '\')" >任务详情</a>';
if (status > 0) {
template += '<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+ 'onclick="revocation(\'' + prodOrderNo + '\')" >撤销</a>';
}
if (filePath1) {
template += '<a style="cursor: pointer;display: inline-flex;justify-content: center;margin:auto 5px" '
+ 'onclick="showUploadFile(' + filePath1 + ')" >附件</a>';
......@@ -167,6 +174,98 @@ function assign() {
}
}
function assignChange() {
//重置全局变量
prodOrderNos = [];
let rows = resultGrid.getCheckedRows()
if (rows.length < 1) {
message("请至少选择一条需要改派的数据");
return;
}
let factoryCodes = rows[0].get("factoryCode");
let flag = true;
$.each(rows, function(index, item) {
prodOrderNos.push(item.prodOrderNo)
let factoryCode= item.get("factoryCode");
if(factoryCode != factoryCodes){
message(`选中第${index+1}选中的生产订单不上同一个工厂,无法改派!`)
flag = false;
return false;
}
if(item.status == 0){
message(`选中第${index+1}行的生产订单未派工,无法改派!`)
flag = false;
return false;
}
});
if(flag) {
// groupType=1:仅查询生产组
JSColorbox.open({
href: "HPSC098?methodName=initLoad&inqu_status-0-orgType=prodGroup&inqu_status-0-factoryCode="+factoryCodes,
title: "<div style='text-align: center;'>选择组织</div>",
width: "70%",
height: "70%",
callbackName: function (row) {
var info = new EiInfo()
info.set("prodOrderNos",prodOrderNos.join(','));
info.set("factoryCode",row.factoryCode);
info.set("factoryName",row.factoryName);
info.set("groupCode",row.groupCode);
info.set("groupName",row.groupName);
EiCommunicator.send("HPSC005A", "assignChange", info, {
onSuccess: function (ei) {
if (ei["status"] == -1) {
NotificationUtil(ei, "error");
} else {
NotificationUtil({
msg: ei.msg
});
// 刷新列表
query();
// 关闭弹窗
JSColorbox.close();
}
}, onFail: function (ei) {
}
}, {async: false});
}
});
}
}
function revocation(prodOrderNo) {
JSUtils.confirm(" 确定要撤销派工吗?", {
ok: function () {
var info = new EiInfo();
info.set("prodOrderNo", prodOrderNo)
EiCommunicator.send("HPSC005A", "revocation", info, {
onSuccess: function (ei) {
if (ei.getStatus() >= 0) {
try {
} catch (e) {
// TODO: handle exception
}
if (ei.getStatus() == 0) {
NotificationUtil(ei, 'warning');
} else {
NotificationUtil(ei);
}
query();
} else {
NotificationUtil(ei, "error");
}
},
onFail: function (ei) {
// 发生异常
NotificationUtil("操作失败,原因[" + ei + "]", "error");
}
});
}
});
}
/**
* 附件清单
*
......
......@@ -29,7 +29,7 @@
<EF:EFRegion id="result" title="记录集">
<EF:EFGrid blockId="result" autoDraw="override" checkMode="row" isFloat="true">
<EF:EFColumn ename="id" cname="主键" hidden="true"/>
<EF:EFColumn ename="operator" cname="操作" enable="false" width="170" locked="true" align="center"/>
<EF:EFColumn ename="operator" cname="操作" enable="false" width="210" locked="true" align="center"/>
<EF:EFColumn ename="prodOrderNo" cname="生产订单号" enable="false" width="140" align="center"/>
<EF:EFComboColumn ename="status" cname="状态" enable="false" width="90" align="center">
<EF:EFOption label="未派工" value="0"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment