Browse Source

2023-07-14,设备和质量修改

java8
杨奉源 3 years ago
parent
commit
ede491890e
  1. 38
      src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanData.java
  2. 1
      src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java
  3. 168
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java
  4. 24
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  5. 20
      src/main/resources/mapper/pms/EamMapper.xml
  6. 1
      src/main/resources/mapper/pms/QcMapper.xml

38
src/main/java/com/xujie/sys/modules/pms/data/EamWorkPlanData.java

@ -8,11 +8,17 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class EamWorkPlanData extends QueryPage {
// 工厂号
private String site;
// 计划编码
private String planID;
// 计划描述
private String planDesc;
// 设备编码
private String objectID;
// 计划类型A点检B维保C维修
private String functionType;
// 模板编码
private String propertiesCode;
// 机修人员ID
private String operator;
@ -22,28 +28,60 @@ public class EamWorkPlanData extends QueryPage {
private String operatorName;
// 审核人员名称
private String checkerName;
// 点检频率
private Integer planPeriod;
// 状态
private String status;
// 计划开始日期
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date planStartDate;
// 计划结束日期
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date planEndDate;
// 下次执行日期
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date nextWorkDate;
// 计划创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
private Date createdDate;
// 创建人
private String createdBy;
// 计划更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
private Date updateDate;
// 更新人
private String updateBy;
// 版本
private Integer version;
// 备注
private String remark;
// 是否删除逻辑删除
private String deleteFlag;
// 工单规则
private String workOrderRule;
// 点检周期
private String planCycle;
public String getPlanCycle() {
return planCycle;
}
public void setPlanCycle(String planCycle) {
this.planCycle = planCycle;
}
public String getWorkOrderRule() {
return workOrderRule;
}
public void setWorkOrderRule(String workOrderRule) {
this.workOrderRule = workOrderRule;
}
public String getOperatorName() {
return operatorName;

1
src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java

@ -362,4 +362,5 @@ public interface QcMapper {
List<QcTemplateData> getTemplateListAll(QcTemplateData data);
QcTemplateData searchPartRepeat(QcTemplateData partData);
}

168
src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java

@ -755,7 +755,6 @@ public class EamServiceImpl implements EamService {
throw new RuntimeException("设备 " + objectData.getObjectID() + " 在该时段内已存在计划,请勿重复创建!");
}
}
String planId = eamMapper.selectOrderId(inData);
if (inData.getFunctionType().equals("A")){
inData.setPlanID("DJ" + planId);
@ -1033,7 +1032,6 @@ public class EamServiceImpl implements EamService {
// throw new XJException(msg, Integer.parseInt(code));
// }
inData.setObjectID(inData.getObjectList().get(i).getObjectID());
// 查询当前记录是否存在
EamWorkPlanInData planData = eamMapper.queryWorkPlan(inData);
@ -1050,7 +1048,6 @@ public class EamServiceImpl implements EamService {
} else if (inData.getFunctionType().equals("B")) {
OrderNoHeader = "W";
}
if (planData.getPlanPeriod() == 0){
// 获得工单号
String no = eamMapper.queryPlanOrderNo(inData);
@ -1061,33 +1058,154 @@ public class EamServiceImpl implements EamService {
}else {
int compareTo = orderDate.compareTo(endDate);
planData.setOrderDate(orderDate);
while (compareTo <= 0){
// 获得工单号
String no = eamMapper.queryPlanOrderNo(inData);
String orderNo = OrderNoHeader + no;
planData.setOrderNo(orderNo);
eamMapper.forInsertWorkOrder(planData);
// 设置下一次的工单时间
calendar.clear();
calendar.setTime(orderDate);
calendar.add(Calendar.DAY_OF_MONTH,planData.getPlanPeriod());
orderDate = calendar.getTime();
planData.setOrderDate(orderDate);
// 判断是否为工作日
try {
Boolean workingDay = HolidayUtils.isWorkingDay(orderDate.getTime());
if (!workingDay){ // 如果不是工作日 日期改为下次
// 获取日
calendar.clear();
calendar.setTime(orderDate);
int day = calendar.get(Calendar.DAY_OF_MONTH);
// 如果是按月排单且选中的日期为28号以上
if (planData.getPlanCycle().equals("月") && day > 28){
if (day <= 30){
while (compareTo <= 0){
// 获得工单号
String no = eamMapper.queryPlanOrderNo(inData);
String orderNo = OrderNoHeader + no;
planData.setOrderNo(orderNo);
// 新增工单
eamMapper.forInsertWorkOrder(planData);
// 设置下一次的工单日期
calendar.clear();
calendar.setTime(orderDate);
calendar.add(Calendar.DAY_OF_MONTH,planData.getPlanPeriod());
// 判断计划周期
calendar.add(Calendar.MONTH,planData.getPlanPeriod());
// 得到下个工单的日期
orderDate = calendar.getTime();
if (orderDate.getMonth() != 2){
orderDate.setDate(day);
}
planData.setOrderDate(orderDate);
// 是否选择了工单生成规则
if (planData.getWorkOrderRule()!= null || !planData.getWorkOrderRule().equals("")){
// 用户选择了周日也创建工单就不进行工作日判断跳过本次循环
if (planData.getWorkOrderRule().contains("A")){
compareTo = orderDate.compareTo(endDate);
continue;
}
}
// 判断是否为工作日
try {
Boolean workingDay = HolidayUtils.isWorkingDay(orderDate.getTime());
if (!workingDay){ // 如果是节假日日期改为下一天
calendar.clear();
calendar.setTime(orderDate);
calendar.add(Calendar.DATE,1);
orderDate = calendar.getTime();
planData.setOrderDate(orderDate);
}
}catch (IOException e){
e.printStackTrace();
}
compareTo = orderDate.compareTo(endDate);
}
}else {
// 如果日期为31号
while (compareTo <= 0){
// 获得工单号
String no = eamMapper.queryPlanOrderNo(inData);
String orderNo = OrderNoHeader + no;
planData.setOrderNo(orderNo);
// 新增工单
eamMapper.forInsertWorkOrder(planData);
// 设置下一次的工单日期
calendar.clear();
calendar.setTime(orderDate);
// 判断计划周期
calendar.add(Calendar.MONTH,planData.getPlanPeriod());
// 得到下个工单的日期
orderDate = calendar.getTime();
int month = orderDate.getMonth() + 1;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
calendar.clear();
calendar.setTime(orderDate);
if (calendar.get(Calendar.DAY_OF_MONTH) != 31){
calendar.add(Calendar.DATE,1);
orderDate = calendar.getTime();
}
}
planData.setOrderDate(orderDate);
// 是否选择了工单生成规则
if (planData.getWorkOrderRule()!= null || !planData.getWorkOrderRule().equals("")){
// 用户选择了周日也创建工单就不进行工作日判断跳过本次循环
if (planData.getWorkOrderRule().contains("A")){
compareTo = orderDate.compareTo(endDate);
continue;
}
}
// 判断是否为工作日
try {
Boolean workingDay = HolidayUtils.isWorkingDay(orderDate.getTime());
if (!workingDay){ // 如果是节假日日期改为下一天
calendar.clear();
calendar.setTime(orderDate);
calendar.add(Calendar.DATE,1);
orderDate = calendar.getTime();
planData.setOrderDate(orderDate);
}
}catch (IOException e){
e.printStackTrace();
}
compareTo = orderDate.compareTo(endDate);
}
}catch (IOException e){
e.printStackTrace();
}
compareTo = orderDate.compareTo(endDate);
}else {
// 其他情况
while (compareTo <= 0){
// 获得工单号
String no = eamMapper.queryPlanOrderNo(inData);
String orderNo = OrderNoHeader + no;
planData.setOrderNo(orderNo);
// 新增工单
eamMapper.forInsertWorkOrder(planData);
// 设置下一次的工单日期
calendar.clear();
calendar.setTime(orderDate);
// 判断计划周期
if (planData.getPlanCycle().equals("天")){
calendar.add(Calendar.DATE,planData.getPlanPeriod());
}else if (planData.getPlanCycle().equals("周")){
calendar.add(Calendar.DATE,7);
} else if (planData.getPlanCycle().equals("月")) {
calendar.add(Calendar.MONTH,planData.getPlanPeriod());
} else if (planData.getPlanCycle().equals("年")) {
calendar.add(Calendar.YEAR,planData.getPlanPeriod());
}
// 得到下个工单的日期
orderDate = calendar.getTime();
planData.setOrderDate(orderDate);
// 是否选择了工单生成规则
if (planData.getWorkOrderRule()!= null || !planData.getWorkOrderRule().equals("")){
// 用户选择了周日也创建工单就不进行工作日判断跳过本次循环
if (planData.getWorkOrderRule().contains("A")){
compareTo = orderDate.compareTo(endDate);
continue;
}
}
// 判断是否为工作日
try {
Boolean workingDay = HolidayUtils.isWorkingDay(orderDate.getTime());
if (!workingDay){ // 如果是节假日日期改为下一天
calendar.clear();
calendar.setTime(orderDate);
calendar.add(Calendar.DATE,1);
orderDate = calendar.getTime();
planData.setOrderDate(orderDate);
}
}catch (IOException e){
e.printStackTrace();
}
compareTo = orderDate.compareTo(endDate);
}
}
// 更改plan表的状态为进行中
eamMapper.updatePlanStatus(planData);
}
@ -1795,8 +1913,8 @@ public class EamServiceImpl implements EamService {
List<SysOssEntity> list = eamMapper.searchFileUrl(data);
for (int i = 0; i < list.size(); i++) {
String s = list.get(i).getUrl().replaceAll("\\\\", "/");
String s1 = s.replace("D:/", "http://192.168.1.127:8088/");
// String s1 = s.replace("D:/", "http://172.26.68.17:8091/");
// String s1 = s.replace("D:/", "http://192.168.1.127:8088/");
String s1 = s.replace("D:/", "http://172.26.68.17:8091/");
list.get(i).setUrl(s1);
}
return list;

24
src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java

@ -695,7 +695,7 @@ public class QcServiceImpl implements QcService {
// 新增模板
qcMapper.templateSave(task);
// 新增模板中的项目
int cells = row.getPhysicalNumberOfCells();
int cells = row.getLastCellNum();
for (int i = 1; i <= cells - 12; i++) {
String itemNo = row.getCell(11 + i).getStringCellValue();
String itemType = "D";
@ -1056,16 +1056,22 @@ public class QcServiceImpl implements QcService {
partData.setAc(templateData2.getAc());
partData.setRe(templateData2.getRe());
// 物料属性模板
for (String field : data.getFieldList()){
partData.setSpecialField(field);
// 查重
QcTemplateData templateData1 = qcMapper.searchPartRepeat(partData);
if (templateData1 != null){
throw new RuntimeException("该模板已存在属性中!");
if (data.getFieldList().size() > 0){
for (String field : data.getFieldList()){
partData.setSpecialField(field);
// 查重
QcTemplateData templateData1 = qcMapper.searchPartRepeat(partData);
if (templateData1 != null){
throw new RuntimeException("模板 " + partData.getTemplateId() + ",工序 "+ partData.getSpecialField() + " 已存在属性中!");
}
// 新增
qcMapper.savePartAttributeDetails(partData);
}
}else {
// 新增
qcMapper.savePartAttributeDetails(partData);
}
}
}
@ -1190,7 +1196,7 @@ public class QcServiceImpl implements QcService {
templateData.setSite(task.getSite());
templateData.setAttributeNo(task.getPartNo());
// 新增物料属性中的模板
int cells = row.getPhysicalNumberOfCells();
int cells = row.getLastCellNum();
for (int i = 1; i <= cells - 3; i++) {
templateData.setTemplateId(row.getCell(2 + i).getRawValue());
QcTemplateData data = qcMapper.selectTemplateData(templateData);
@ -1299,7 +1305,7 @@ public class QcServiceImpl implements QcService {
templateData.setSite(task.getSite());
templateData.setAttributeNo(task.getFamilyID());
// 新增物料属性中的模板
int cells = row.getPhysicalNumberOfCells();
int cells = row.getLastCellNum();
for (int i = 1; i <= cells - 2; i++) {
templateData.setTemplateId(row.getCell(1 + i).getRawValue());
QcTemplateData data = qcMapper.selectTemplateData(templateData);

20
src/main/resources/mapper/pms/EamMapper.xml

@ -362,7 +362,8 @@ b.MinValue,b.ItemRemark,b.ItemType
a.function_type,
a.properties_code,
a.plan_period,
d.code_desc
d.code_desc,
a.work_order_rule
FROM eam_workPlan_overview a
LEFT JOIN eam_properties_model_header d
ON a.function_type = d.function_type and a.properties_code = d.code_no
@ -612,7 +613,10 @@ b.MinValue,b.ItemRemark,b.ItemType
<if test="query.endDate != null ">
AND #{query.endDate} >= a.PlanDate
</if>
and a.FunctionType =#{query.functionType}
<if test="query.endDate == null ">
AND getDate() >= a.PlanDate
</if>
AND a.FunctionType = #{query.functionType}
</where>
ORDER BY a.CreateDate,
CASE WHEN b.urgency = '事故' THEN 1
@ -1317,8 +1321,8 @@ b.MinValue,b.ItemRemark,b.ItemType
<!-- 新增点检计划 -->
<insert id="saveWorkPlan" parameterType="EamWorkPlanInData">
INSERT INTO eam_workPlan_overview
(site, plan_id, plan_desc, status, plan_start_date, plan_end_date, created_date, created_by, update_date, update_by, remark, delete_flag, operator, operator_name, checker, checker_name, function_type, properties_code, plan_period)
VALUES (#{site}, #{planID}, #{planDesc}, '已计划', #{planStartDate}, #{planEndDate}, getDate(), #{createdBy}, getDate(), #{updateBy}, #{remark}, 'N', #{operator}, #{operatorName}, #{checker}, #{checkerName}, #{functionType}, #{propertiesCode}, #{planPeriod})
(site, plan_id, plan_desc, status, plan_start_date, plan_end_date, created_date, created_by, update_date, update_by, remark, delete_flag, operator, operator_name, checker, checker_name, function_type, properties_code, plan_period, work_order_rule, plan_cycle)
VALUES (#{site}, #{planID}, #{planDesc}, '已计划', #{planStartDate}, #{planEndDate}, getDate(), #{createdBy}, getDate(), #{updateBy}, #{remark}, 'N', #{operator}, #{operatorName}, #{checker}, #{checkerName}, #{functionType}, #{propertiesCode}, #{planPeriod}, #{workOrderRule}, #{planCycle})
</insert>
<!-- 生成工单ID -->
@ -1425,9 +1429,11 @@ b.MinValue,b.ItemRemark,b.ItemType
operator = #{operator},
operator_name = #{operatorName},
checker = #{checker},
checker_name = #{checkerName}
checker_name = #{checkerName},
work_order_rule = #{workOrderRule}
WHERE site = #{site}
AND plan_id = #{planID}
AND function_type = #{functionType}
</update>
<!-- 删除该计划的旧设备 -->
@ -1735,7 +1741,9 @@ b.MinValue,b.ItemRemark,b.ItemType
function_type,
checker,
checker_name,
operator_name
operator_name,
work_order_rule,
plan_cycle
FROM eam_workPlan_overview
WHERE site = #{site}
AND plan_id = #{planID}

1
src/main/resources/mapper/pms/QcMapper.xml

@ -2196,6 +2196,7 @@
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save