This commit is contained in:
2022-09-22 18:51:31 +08:00
31 changed files with 685 additions and 125 deletions

View File

@@ -619,8 +619,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
/*
* 判断确认类型,并进行相对应的操作
*/
// 投料确认: 1.1
if (StrUtil.equals(type, "1.1")) {
// 大称投料确认: 1.1小称投料确认1.3
if (StrUtil.equals(type, "1.1") || StrUtil.equals(type, "1.3")) {
// 更新称重记录表上报人
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
@@ -652,8 +652,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("status", "400");
result.put("message", "称重成功,自动确认失败");
}
// 投料强制确认: 1.2
} else if (StrUtil.equals(type, "1.2")) {
// 大称投料强制确认: 1.2小称投料强制确认1.4
} else if (StrUtil.equals(type, "1.2") || StrUtil.equals(type, "1.4")) {
// 更新称重记录表上报人
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
jsonWeight.put("record_optid", jsonDtl.get("start_id"));

View File

@@ -215,6 +215,7 @@ public class DailyplanServiceImpl implements DailyplanService {
if(jret.size()>0){
JSONObject form = new JSONObject();
form.put("rows",jret);
form.put("query",whereJson);
this.submit2(form);
}
jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
@@ -437,12 +438,16 @@ public class DailyplanServiceImpl implements DailyplanService {
}
String captemplate_id = captemplate.getString("id");
JSONArray ja = form.getJSONArray("rows");
JSONObject query = form.getJSONObject("query");
String checked = query.getString("checked");
if (StrUtil.isEmpty(checked)) {
checked = "false";
}
JSONObject last = MPS_BD_ProductDailyPlan.query("device_id='"+ja.getJSONObject(0).getString("device_id")+"' and status='01'","planstart_date").uniqueResult(0);
if(last ==null ){
throw new BadRequestException("日计划表此分组设备的最早一个日计划为空,没有可重排数据!");
}
JSONArray ja_new = new JSONArray();
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
@@ -452,8 +457,21 @@ public class DailyplanServiceImpl implements DailyplanService {
MPS_BD_ProductDailyPlan.delete(jo);
}
}
String nowstart_date = last.getString("planstart_date");
Date date = DateUtil.parse(nowstart_date);
if(checked.equals("true")){
if (StrUtil.isNotEmpty(query.getString("nowstart_date"))) {
String nowstart_date2 = query.getString("nowstart_date").substring(0,10);
Date date2 = DateUtil.parse(nowstart_date2);
//指定日期小于最晚的日计划日期
if(date2.getTime() >= date.getTime()){
nowstart_date = nowstart_date2;
date = date2;
}
}
}
//当天产能是否有剩余
double pcsn_num_day = 0;
@@ -474,7 +492,7 @@ public class DailyplanServiceImpl implements DailyplanService {
int totalproducecapacity_qty = series.getInteger("totalproducecapacity_qty");
//第一条查数据库
if(StrUtil.isNotEmpty(nowstart_date)){
JSONObject last2 = MPS_BD_ProductDailyPlan.query("device_id='"+jo.getString("device_id")+"'","planstart_date desc,create_time desc").uniqueResult(0);
JSONObject last2 = MPS_BD_ProductDailyPlan.query("device_id='"+jo.getString("device_id")+"' and planstart_date>='"+nowstart_date+"'","planstart_date desc,create_time desc").uniqueResult(0);
String standard_mark = jo.getString("standard_mark");
if(last2 != null ){
nowstart_date = last2.getString("planstart_date");

View File

@@ -127,6 +127,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
json.put("create_time", now);
json.put("sysdeptid", deptId);
json.put("syscompanyid", deptId);
String create_mode = json.getString("create_mode");
if("01".equals(create_mode)){
String planstart_time = json.getString("planstart_time");
Date date = DateUtil.parse(planstart_time);
int days = this.getDays(json.getString("material_id"));
Date planend_date = DateUtil.offsetDay(date,days-1);
String planend_time = DateUtil.formatDate(planend_date).substring(0,10);
json.put("planend_time",planend_time+" 23:59:59");
}
mstTab.insert(json);
this.updatePcsn(json);
}
@@ -167,6 +176,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
this.updatePcsn(whereJson);
}
}
String create_mode = whereJson.getString("create_mode");
if("01".equals(create_mode)){
String planstart_time = whereJson.getString("planstart_time");
Date date = DateUtil.parse(planstart_time);
int days = this.getDays(whereJson.getString("material_id"));
Date planend_date = DateUtil.offsetDay(date,days-1);
String planend_time = DateUtil.formatDate(planend_date).substring(0,10);
whereJson.put("planend_time",planend_time+" 23:59:59");
}
mstTab.update(whereJson);
}
@@ -275,11 +293,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
String factorycalendar_id = calendar.getJSONObject(0).getString("factorycalendar_id");
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
JSONObject jsonMst = PDM_BI_WorkOrder.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0'").uniqueResult(0);
if (jsonMst == null) {
throw new BadRequestException(jo.getString("workorder_code") + "当前工令记录状态异常,操作失败!");
}
String jo_device_id = jsonMst.getString("device_id");
JSONObject Formula = PDM_BI_Formula.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0' and is_audit='0' ").uniqueResult(0);
if (Formula != null) {
throw new BadRequestException(jo.getString("workorder_code") + "工令对应配方未审核,操作失败!");
@@ -376,7 +395,9 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
}
}
}
}else if("GX001".equals(workprocedure_code)){//配粉工序
}else
//配粉工序
if("GX001".equals(workprocedure_code)){
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
String nowTime = planstart_date+" 24:00:00";
if(devices.size()>=0){
@@ -404,6 +425,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
}else{
throw new BadRequestException("未查询到满足条件的排产模板!");
}
//喷雾工序使用工令指定的设备生产工序任务
if("GX003".equals(workprocedure_code)){
if (StrUtil.isNotEmpty(jo_device_id)) {
jsonMst.put("device_id", jo_device_id);
}
}
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
String planstart_time = jsonMst.getString("planstart_time");
//设置开始时间
@@ -818,6 +845,19 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
return ret;
}
@Transactional(rollbackFor = Exception.class)
public int getDays(String material_id) {
JSONArray ProcessRoutes = WQL.getWO("QPDM_PRODUCTPLANPROC").addParam("flag","5")
.addParam("material_code",material_id).process().getResultJSONArray(0);
int days = 0;
for(int i=0;i<ProcessRoutes.size();i++){
JSONObject jo = ProcessRoutes.getJSONObject(i);
int plan_time = jo.getInteger("plan_time");
days = days + (int) Math.ceil(plan_time/24.0);
}
return days;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void download(Map whereJson, HttpServletResponse response) throws IOException {

View File

@@ -255,7 +255,7 @@
QUERY
SELECT
sum(ProcedureOffline.qty) AS total_qty,
WorkOrder.device_id
MAX(WorkOrder.device_id) AS device_id
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
@@ -377,7 +377,7 @@
SELECT
sum(ProcedureOffline.qty) AS total_qty,
count(WorkOrder.workorder_id) AS in_num,
WorkOrder.device_id
MAX(WorkOrder.device_id) AS device_id
FROM
PDM_BI_WorkOrder WorkOrder
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id

View File

@@ -216,11 +216,15 @@ public class FormulaServiceImpl implements FormulaService {
double RF_total = 0;
//删除明细
PDM_BI_FormulaDtl.delete("formula_id='"+formula_id+"'");
int mn =1;
for(int i = 0;i<tableDtl.size();i++){
JSONObject jo = tableDtl.getJSONObject(i);
String formuladtl_id = jo.getString("formuladtl_id");
jo.put("seq_no",(i+1)+"");
if(jo.getDouble("formula_qty")<=0){
continue;
}
jo.put("seq_no",(mn)+"");
mn++;
if("1".equals(jo.getString("is_need_manage"))){
billpure_qty = billpure_qty+jo.getDouble("formula_qty");
}

View File

@@ -336,6 +336,33 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 档案表
WQLObject lifeTab = WQLObject.getWQLObject("EM_BI_DeviceLifeCycle"); // 设备生命周期表
WQLObject recordTab = WQLObject.getWQLObject("EM_BI_DeviceRepairRecord"); // 设备维修单情况记录表
// 校验设备维修情况不能为空
String fault_comment = whereJson.getString("fault_comment"); // 故障描述
String fault_cause = whereJson.getString("fault_cause"); // 故障原因
String fault_analysis = whereJson.getString("fault_analysis"); // 问题分析
String measure = whereJson.getString("measure"); // 处理措施
if (ObjectUtil.isEmpty(fault_comment)) throw new BadRequestException("故障描述不能为空");
if (ObjectUtil.isEmpty(fault_cause)) throw new BadRequestException("故障原因不能为空");
if (ObjectUtil.isEmpty(fault_analysis)) throw new BadRequestException("问题分析不能为空");
if (ObjectUtil.isEmpty(measure)) throw new BadRequestException("处理措施不能为空");
JSONObject jsonRord = recordTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonRord)) {
recordTab.delete("repair_id = '"+whereJson.getString("repair_id")+"'");
}
// 重新插入表
JSONObject jsonObject = new JSONObject();
jsonObject.put("repair_record_id", IdUtil.getSnowflake(1,1).nextId());
jsonObject.put("repair_id", whereJson.getString("repair_id"));
jsonObject.put("devicerecord_id", whereJson.getString("devicerecord_id"));
jsonObject.put("inputdate", DateUtil.today());
jsonObject.put("fault_comment", fault_comment);
jsonObject.put("fault_cause", fault_cause);
jsonObject.put("fault_analysis", fault_analysis);
jsonObject.put("measure", measure);
recordTab.insert(jsonObject);
// 1.判断维修单明细中是否完成 都为是,不是则报错
JSONArray reDtlArr = reDtlTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").getResultJSONArray(0);
@@ -379,6 +406,7 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
WQLObject reMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairMst"); // 设备维修单主表
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
WQLObject recordTab = WQLObject.getWQLObject("EM_BI_DeviceRepairRecord"); // 设备维修单情况记录表
// 1.更新维修主表
JSONObject jsonReMst = reMstTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
@@ -394,6 +422,23 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
reDtlTab.update(jsonRedtl);
}
// 3.插入设备维修单情况记录表
JSONObject jsonRd = recordTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonRd)) {
recordTab.delete("repair_id = '"+whereJson.getString("repair_id")+"'");
}
JSONObject json = new JSONObject();
json.put("repair_record_id", IdUtil.getSnowflake(1,1).nextId());
json.put("repair_id", whereJson.getString("repair_id"));
json.put("devicerecord_id", whereJson.getString("devicerecord_id"));
json.put("inputdate", DateUtil.today());
json.put("fault_comment", whereJson.getString("fault_comment"));
json.put("fault_cause", whereJson.getString("fault_cause"));
json.put("fault_analysis", whereJson.getString("fault_analysis"));
json.put("measure", whereJson.getString("measure"));
recordTab.insert(json);
}
@Override

View File

@@ -266,17 +266,22 @@
file.device_name,
file.extend_code,
d1.name AS dept_name,
d2.name AS use_name
d2.name AS use_name,
r.fault_comment,
r.fault_cause,
r.fault_analysis,
r.measure
FROM
EM_BI_DeviceRepairMst mst
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id
LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id
LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id
LEFT JOIN sys_dept d2 ON file.use_groupid = d2.dept_id
LEFT JOIN EM_BI_DeviceRepairRecord r ON r.repair_id = mst.repair_id
WHERE
mst.is_delete = '0'
AND file.is_delete = '0'
AND mst.invstatus not in ('01')
AND mst.invstatus not in ('01','04')
OPTION 输入.device_code <> ""
(file.device_code like 输入.device_code or
@@ -331,7 +336,7 @@
WHERE
mst.is_delete = '0'
AND file.is_delete = '0'
AND mst.invstatus in ('03','04','05')
AND mst.invstatus in ('04')
OPTION 输入.device_code <> ""
(file.device_code like 输入.device_code or

View File

@@ -54,7 +54,9 @@
MAX(class.class_name) AS class_name,
MAX(file.device_code) AS device_code,
MAX(file.device_model) AS device_model,
re.devicerecord_id
re.devicerecord_id,
file.device_name,
file.extend_code
FROM
EM_BI_DeviceRepairRequest re
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = re.devicerecord_id
@@ -106,7 +108,6 @@
pari.outsourceaskfor_optid,
pari.confirm_time,
pari.audit_time,
pari.product_person_name,
pari.update_optname
FROM
EM_BI_DeviceRepairRequest re

View File

@@ -276,12 +276,12 @@
mst.invstatus
WHEN '01' THEN '生成'
WHEN '02' THEN '提交'
WHEN '03' THEN '开始'
WHEN '03' THEN '维修开始'
WHEN '04' THEN '委外维修'
WHEN '05' THEN '委外验收'
WHEN '06' THEN '结束'
WHEN '07' THEN '确认'
WHEN '99' THEN '审核'
WHEN '06' THEN '维修结束'
WHEN '07' THEN '班组确认'
WHEN '99' THEN '审核完毕'
END
) AS invstatus,
mst.real_start_date,
@@ -332,12 +332,12 @@
CASE mst.invstatus
WHEN '01' THEN '生成'
WHEN '02' THEN '提交'
WHEN '03' THEN '开始'
WHEN '03' THEN '维修开始'
WHEN '04' THEN '委外维修'
WHEN '05' THEN '委外验收'
WHEN '06' THEN '结束'
WHEN '07' THEN '确认'
WHEN '99' THEN '审核'
WHEN '06' THEN '维修结束'
WHEN '07' THEN '班组确认'
WHEN '99' THEN '审核完毕'
END
)
END
@@ -368,6 +368,7 @@
st.is_delete = '0'
AND (st.status <> '99')
AND mst.source_bill_type = 'BXD'
AND st.is_passed = '1'
UNION
@@ -388,10 +389,10 @@
mst.invstatus
WHEN '01' THEN '生成'
WHEN '02' THEN '提交'
WHEN '03' THEN '开始'
WHEN '04' THEN '结束'
WHEN '05' THEN '确认'
WHEN '99' THEN '审核'
WHEN '03' THEN '保养开始'
WHEN '04' THEN '保养结束'
WHEN '05' THEN '班组确认'
WHEN '99' THEN '审核完毕'
END
) AS invstatus,
mst.real_start_date,

View File

@@ -47,6 +47,13 @@ public class DevicemaintenanceplanmstController {
return new ResponseEntity<>(devicemaintenanceplanmstService.queryDevice(whereJson, page), HttpStatus.OK);
}
@GetMapping("/queryDevice2")
@Log("查询设备档案2")
@ApiOperation("查询设备档案2")
public ResponseEntity<Object> queryDevice2(@RequestParam Map whereJson, Pageable page) {
return new ResponseEntity<>(devicemaintenanceplanmstService.queryDevice2(whereJson, page), HttpStatus.OK);
}
@PostMapping
@Log("新增设备保养计划维护")
@ApiOperation("新增设备保养计划维护")

View File

@@ -82,6 +82,15 @@ public interface DevicemaintenanceplanmstService {
*/
Map<String, Object> queryDevice(Map whereJson, Pageable page);
/**
* 查询数据分页
*
* @param whereJson 条件
* @param page 分页参数
* @return Map<String, Object>
*/
Map<String, Object> queryDevice2(Map whereJson, Pageable page);
/**
* 获取明细
*

View File

@@ -45,6 +45,7 @@ import cn.hutool.core.util.ObjectUtil;
@Slf4j
public class DevicemaintenanceplanmstServiceImpl implements DevicemaintenanceplanmstService {
private final ClassstandardService classstandardService;
private final DeptService deptService;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
@@ -244,6 +245,38 @@ public class DevicemaintenanceplanmstServiceImpl implements Devicemaintenancepla
return json;
}
@Override
public Map<String, Object> queryDevice2(Map whereJson, Pageable page) {
DeptService deptService = SpringContextHolder.getBean(DeptService.class);
String device_code = MapUtil.getStr(whereJson, "device_code");
// 查询设备档案
HashMap<String, String> map = new HashMap<>();
map.put("flag", "4");
if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%"+device_code+"%");
String dept_id = MapUtil.getStr(whereJson, "dept_id");
if (!StrUtil.isEmpty(dept_id)) {
String deptIds = deptService.getChildIdStr(Long.parseLong(dept_id));
map.put("deptIds", deptIds);
}
String use_id = MapUtil.getStr(whereJson, "use_id");
if (!StrUtil.isEmpty(use_id)) {
String useIds = deptService.getChildIdStr(Long.parseLong(use_id));
map.put("useIds", useIds);
}
// 获取当前登陆用户
Long currentUserId = SecurityUtils.getCurrentUserId();
String dept_str = deptService.getChildIdStr(currentUserId);
if (ObjectUtil.isNotEmpty(dept_str)) {
map.put("dept_str",dept_str);
}
JSONObject json = WQL.getWO("EM_BIDEVICEMAINTENANCEPLAN001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "file.update_time DESC");
return json;
}
@Override
@Transactional(rollbackFor = Exception.class)
public JSONArray getDtl(JSONObject whereJson) {

View File

@@ -115,7 +115,7 @@
WHERE
mst.is_delete = '0'
AND file.is_delete = '0'
AND mst.invstatus in ('07','99')
AND mst.invstatus in ('05','99')
OPTION 输入.device_code <> ""
(file.device_code like 输入.device_code or

View File

@@ -15,6 +15,7 @@
#################################################
输入.flag TYPEAS s_string
输入.classIds TYPEAS f_string
输入.dept_str TYPEAS f_string
输入.deptIds TYPEAS f_string
输入.useIds TYPEAS f_string
输入.device_code TYPEAS s_string
@@ -154,5 +155,41 @@
ENDQUERY
ENDIF
IF 输入.flag = "4"
PAGEQUERY
SELECT
file.*,
class.class_name,
work.workprocedure_name,
d1.name AS dept_name,
d2.name AS use_name
FROM
EM_BI_EquipmentFile file
LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id
LEFT JOIN pdm_bi_workprocedure work ON file.workprocedure_id = work.workprocedure_id
LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id
LEFT JOIN sys_dept d2 ON file.use_groupid = d2.dept_id
WHERE
file.is_delete = '0'
AND file.status not in (90,91)
AND d2.dept_id in 输入.dept_str
OPTION 输入.device_code <> ""
(file.device_code like 输入.device_code or
file.device_name like 输入.device_code)
ENDOPTION
OPTION 输入.deptIds <> ""
d1.dept_id in 输入.deptIds
ENDOPTION
OPTION 输入.useIds <> ""
d2.dept_id in 输入.useIds
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -212,9 +212,10 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
JSONArray rows = new JSONArray();
for (int i = 0; i < jsonArr.size(); i++) {
JSONObject row = jsonArr.getJSONObject(i);
String material_code = row.getString("material_code");
JSONObject bom = WQLObject.getWQLObject("md_pd_productbom").query("material_id = '"+row.get("material_id")+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(bom)){
throw new BadRequestException("未查询到该产品对应BOM信息");
throw new BadRequestException("未查询到该产品 "+material_code+" 对应BOM信息");
}
row.put("1",row.getString("planstart_date"));
row.put("2",row.getString("old_mark"));

View File

@@ -1,10 +1,10 @@
[交易说明]
交易名: 压制性能分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
@@ -33,22 +33,22 @@
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
@@ -58,14 +58,14 @@
SELECT
MAX( mb.material_code ) AS material_code,
SUM( off.qty ) AS qty,
off.material_id,
off.pcsn,
MAX( off.material_id) AS material_id,
MAX( off.pcsn) AS pcsn,
MAX( off.create_time ) AS create_time,
MAX( off.create_name ) AS create_name,
MAX( wo.planend_time ) AS planend_time,
MAX( wo.realend_time ) AS realend_time,
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
ext.old_mark
MAX( ext.old_mark) AS old_mark
FROM
pdm_bi_procedureoffline off
LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_id
@@ -446,10 +446,12 @@
plan.product_num,
ext.old_mark,
plan.product_weight,
plan.material_id
plan.material_id,
materialbase.material_code
FROM
mps_bd_productdailyplan plan
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = plan.material_id
LEFT JOIN md_me_materialbase materialbase ON materialbase.material_id = plan.material_id
WHERE
1=1
OPTION 输入.begin_time <> ""