add:添加深坑设备物料修改

This commit is contained in:
zhangzhiqiang
2023-06-06 19:33:09 +08:00
parent 35dc93da32
commit 29012daacd
16 changed files with 164 additions and 56 deletions

View File

@@ -45,15 +45,15 @@ public class PageQuery implements Serializable {
/**
* 当前记录起始索引 默认值
*/
public static final int DEFAULT_PAGE_NUM = 1;
public static final int DEFAULT_PAGE_NUM = 0;
/**
* 每页显示记录数 默认值 默认查全部
*/
public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
public static final int DEFAULT_PAGE_SIZE = 10;
public <T> Page<T> build() {
Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM) + 1;
Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM);
Integer pageSize = ObjectUtil.defaultIfNull(getSize(), DEFAULT_PAGE_SIZE);
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NUM;
@@ -75,10 +75,7 @@ public class PageQuery implements Serializable {
public <R,T> Page<T> build(Class<R> r) {
Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM);
Integer pageSize = ObjectUtil.defaultIfNull(getSize(), DEFAULT_PAGE_SIZE);
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NUM;
}
Page<T> page = new Page<>(pageNum, pageSize);
Page<T> page = new Page<>(pageNum+1, pageSize);
if (StringUtils.isNotBlank(sort)){
String[] split = sort.split(",");
for (int i = 0; i < (split.length & ~1); i=i+2) {

View File

@@ -58,7 +58,9 @@ public enum AcsTaskEnum {
ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"),
ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK("3","诺宝单入-单任务"),
ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK("4","诺宝双入-双任务"),
ACS_TASK_TYPE_NOBLE_POINT_POINT_TASK("5","诺宝点对点任务"),
ACS_TASK_TYPE_WEIGHING_TASK_OF_PS20("6","PS20称重任务刻字-包装)"),
ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20("7","PS20不称重任务刻字-包装)"),

View File

@@ -57,10 +57,10 @@ public class CodeGenerator {
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.81.252:3306/hl_one_mes_xc?serverTimezone=GMT&setUnicode=true&characterEncoding=utf8");
dsc.setUrl("jdbc:mysql://192.168.46.5:3306/hl_one_mes_test?serverTimezone=GMT&setUnicode=true&characterEncoding=utf8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("Root.123456");
dsc.setPassword("123456");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();

View File

@@ -0,0 +1,21 @@
package org.nl.wms.device_manage.controller.userdevice;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 人员设备关系表 前端控制器
* </p>
*
* @author generator
* @since 2023-06-06
*/
@RestController
@RequestMapping("/pdmBiPersoncorrdevice")
public class PdmBiPersoncorrdeviceController {
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.device_manage.service.userdevice;
import org.nl.wms.device_manage.service.userdevice.dao.PdmBiPersoncorrdevice;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 人员设备关系表 服务类
* </p>
*
* @author generator
* @since 2023-06-06
*/
public interface IPdmBiPersoncorrdeviceService extends IService<PdmBiPersoncorrdevice> {
}

View File

@@ -0,0 +1,34 @@
package org.nl.wms.device_manage.service.userdevice.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 人员设备关系表
* </p>
*
* @author generator
* @since 2023-06-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("pdm_bi_personcorrdevice")
public class PdmBiPersoncorrdevice implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
private String user_id;
/**
* 设备标识
*/
private String device_code;
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.device_manage.service.userdevice.dao.mapper;
import org.nl.wms.device_manage.service.userdevice.dao.PdmBiPersoncorrdevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 人员设备关系表 Mapper 接口
* </p>
*
* @author generator
* @since 2023-06-06
*/
public interface PdmBiPersoncorrdeviceMapper extends BaseMapper<PdmBiPersoncorrdevice> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.device_manage.service.userdevice.dao.mapper.PdmBiPersoncorrdeviceMapper">
</mapper>

View File

@@ -0,0 +1,20 @@
package org.nl.wms.device_manage.service.userdevice.impl;
import org.nl.wms.device_manage.service.userdevice.dao.PdmBiPersoncorrdevice;
import org.nl.wms.device_manage.service.userdevice.dao.mapper.PdmBiPersoncorrdeviceMapper;
import org.nl.wms.device_manage.service.userdevice.IPdmBiPersoncorrdeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 人员设备关系表 服务实现类
* </p>
*
* @author generator
* @since 2023-06-06
*/
@Service
public class PdmBiPersoncorrdeviceServiceImpl extends ServiceImpl<PdmBiPersoncorrdeviceMapper, PdmBiPersoncorrdevice> implements IPdmBiPersoncorrdeviceService {
}

View File

@@ -23,6 +23,7 @@ import org.nl.wms.product_manage.备份pdm.service.DeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -43,26 +44,21 @@ public class SpecialDeviceController {
@Autowired
private IPdmBiDeviceService iDeviceService;
@PostMapping("/query")
@GetMapping("/query")
@ApiOperation("查询生产设备")
@SaIgnore
public ResponseEntity<Object> query(@RequestBody DeviceQuery query) {
List<PdmBiDevice> list = iDeviceService.list(query.build());
Set<String> materials = list.stream().map(PdmBiDevice::getMaterial_id).collect(Collectors.toSet());
Map<String, MdMeMaterialbase> materialMap = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().in("material_id", materials)).stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll);
List<Map> result = new ArrayList<>();
for (PdmBiDevice pdmBiDevice : list) {
Map<String, Object> map = new HashMap<>();
map.put("device_code",pdmBiDevice.getDevice_code());
map.put("product_area",pdmBiDevice.getProduct_area());
map.put("material_id",pdmBiDevice.getMaterial_id());
MdMeMaterialbase materialbase = materialMap.get("pdmBiDevice.getMaterial_id()");
map.put("material_name",materialbase!=null?materialbase.getMaterial_name():"");
map.put("material_spec",materialbase!=null?materialbase.getMaterial_spec():"");
map.put("deviceinstor_qty",pdmBiDevice.getDeviceinstor_qty());
result.add(map);
public ResponseEntity<Object> query(DeviceQuery query,PageQuery page) {
Page<Map<String, Object>> list = iDeviceService.pageMaps(page.build(PdmBiDevice.class), query.build());
if (!CollectionUtils.isEmpty(list.getRecords())){
Set materials = list.getRecords().stream().map(a->a.get("material_id")).collect(Collectors.toSet());
Map<String, MdMeMaterialbase> materialMap = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().in("material_id", materials)).stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll);
for (Map pdmBiDevice : list.getRecords()) {
MdMeMaterialbase materialbase = materialMap.get(pdmBiDevice.get("material_id"));
pdmBiDevice.put("material_name",materialbase!=null?materialbase.getMaterial_name():"");
pdmBiDevice.put("material_spec",materialbase!=null?materialbase.getMaterial_spec():"");
}
}
return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK);
}
@PostMapping("/update")

View File

@@ -108,6 +108,14 @@ public class ProduceshiftorderController{
public ResponseEntity<Object> saveReport(@RequestBody JSONObject param) {
return new ResponseEntity<>(iPdmProduceWorkorderService.report(param), HttpStatus.OK);
}
@PostMapping("/unqualReport")
@Log("工单不合格报工")
@ApiOperation("工单不合格报工")
public ResponseEntity<Object> unqualReport(@RequestBody JSONObject param) {
iPdmProduceWorkorderService.unqualReport(param);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/finish")
@Log("看板强制完成")

View File

@@ -108,12 +108,13 @@ public interface IPdmProduceWorkorderService extends IService<PdmProduceWorkorde
Object openStart(JSONObject param);
/**
* 工操作
* 工操作
*包含3个字段
* @param param 请求参数
* @return
*/
Object report(JSONObject param);
void unqualReport(JSONObject param);
void reportApprove(JSONArray param);
void updateReport(JSONObject param);

View File

@@ -56,6 +56,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -232,7 +233,6 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
}
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
// 1.获取上传文件输入流
InputStream inputStream = null;
try {
@@ -240,7 +240,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
} catch (Exception e) {
e.printStackTrace();
}
ExcelReader reader = ExcelUtil.getReader(inputStream);
// 调用用 hutool 方法读取数据 调用第一个sheet白班数据
ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0);
// 从第1行开始获取数据 excelReader.read的结果是一个2纬的list外层是行内层是行对应的所有列
@@ -588,20 +588,17 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
@Override
@Transactional
public Object report(JSONObject param) {
Assert.notNull(new Object[]{param, param.get("report_qty"), param.get("nok_qty"), param.getBigDecimal("repare_qty")}, "请求参数不能为空");
Assert.notNull(new Object[]{param, param.get("report_qty"),param.getString("workorder_id")}, "请求参数不能为空");
PdmProduceWorkorder workorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) {
// throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工");
// }
Assert.notNull(workorder,"当前工单不存在");
PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper<PdmProduceWorkorderrecord>()
.eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成")));
if (one == null) {
throw new BadRequestException(param.getString("workorder_id") + "当前工单没有生成状态的报工记录");
}
Assert.notNull(one,param.getString("workorder_id") + "当前工单没有生成状态的报工记录");
workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty")));
workorder.setNok_qty(workorder.getReport_qty().add(param.getBigDecimal("nok_qty")));
workorder.setRepare_qty(workorder.getReport_qty().add(param.getBigDecimal("repare_qty")));
if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) {
workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode());
}
@@ -609,14 +606,22 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
this.updateById(workorder);
reportRecordService.update(new UpdateWrapper<PdmProduceWorkorderrecord>()
.set("report_qty", param.getBigDecimal("report_qty"))
.set("nok_qty", param.getBigDecimal("nok_qty"))
.set("repare_qty", param.getBigDecimal("repare_qty"))
.set("report_status", ReportEnum.REPORT_STATUS.code("报工"))
.set("needproduct_qty", Math.max(0,workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue()))
.eq("macoperate_id", one.getMacoperate_id()));
return one.getMacoperate_id();
}
@Override
public void unqualReport(JSONObject param) {
Assert.notNull(new Object[]{param, param.get("report_qty"),param.getString("workorder_id")}, "请求参数不能为空");
PdmProduceWorkorder workorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
Assert.notNull(workorder,"当前工单不存在");
workorder.setRepare_qty(param.getBigDecimal("nok_qty"));
workorder.setRepare_qty(param.getBigDecimal("repare_qty"));
workorder.setReal_qty(null);
this.updateById(workorder);
}
@Override
@Transactional
@@ -647,23 +652,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
private List<Map> packageWorkorderQty(List<PdmProduceWorkorderrecord> record, List<PdmProduceWorkorderrecord> itemRecord) {
List<String> ids = itemRecord.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList());
List<PdmProduceWorkorderrecord> oldRecord = record.stream().filter(item -> ids.contains(item.getMacoperate_id())).collect(Collectors.toList());
long old_nok_qty = oldRecord.stream().mapToLong(a->a.getNok_qty().longValue()).sum();
long new_nok_qty = itemRecord.stream().mapToLong(a->a.getNok_qty().longValue()).sum();
long old_repare_qty = oldRecord.stream().mapToLong(a->a.getRepare_qty().longValue()).sum();
long new_repare_qty = itemRecord.stream().mapToLong(a->a.getRepare_qty().longValue()).sum();
long old_report_qty = oldRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum();
long new_report_qty = itemRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum();
List<Map> list = new ArrayList<>();
Map<String, Object> nok_qty = new HashMap<>();
nok_qty.put("field", "nok_qty");
nok_qty.put("value", Math.abs(new_nok_qty - old_nok_qty));
nok_qty.put("add", new_nok_qty > old_nok_qty);
list.add(nok_qty);
Map<String, Object> repare_qty = new HashMap<>();
repare_qty.put("field", "repare_qty");
repare_qty.put("value", Math.abs(new_repare_qty - old_repare_qty));
repare_qty.put("add", new_repare_qty > old_repare_qty);
list.add(repare_qty);
List<Map> list = new ArrayList<>();
Map<String, Object> report_qty = new HashMap<>();
report_qty.put("field", "report_qty");
report_qty.put("value", Math.abs(new_report_qty - old_report_qty));

View File

@@ -23,10 +23,11 @@ spring:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
username: ${DB_USER:root}
# password: ${DB_PWD:123456}
password: ${DB_PWD:942464Yy}
password: ${DB_PWD:123456}
# 初始连接数
initial-size: 5

View File

@@ -38,7 +38,7 @@
</template>
<script>
import crudProduceshiftorder from '@/views/wms/product_manage/workorder'
import crudProduceshiftorder from '@/views/wms/product_manage/workorder/produceshiftorder'
import CRUD, { crud } from '@crud/crud'
export default {

View File

@@ -52,7 +52,7 @@
@current-change="handleCurrentChange"
>
<el-table-column type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="material_spec" label="物料系列" />
<el-table-column show-overflow-tooltip prop="rule_code" label="物料系列" />
<el-table-column show-overflow-tooltip prop="process_id" label="工序调度编号" />
<el-table-column show-overflow-tooltip prop="process_name" label="工序调度名称" />
<el-table-column