diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/controller/PdmBdWorkorderController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/controller/PdmBdWorkorderController.java index a1a73ba..62fcadd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/controller/PdmBdWorkorderController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/controller/PdmBdWorkorderController.java @@ -1,6 +1,7 @@ package org.nl.wms.pm_manage.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.annotation.Limit; import org.nl.common.base.TableDataInfo; @@ -82,4 +83,17 @@ public class PdmBdWorkorderController { public ResponseEntity getStockMaterial(PdmBdWorkorderQuery entity, PageQuery pageQuery) { return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.getStockMaterial(entity, pageQuery)), HttpStatus.OK); } + + @PostMapping("/batchAddOrders") + @Log("批量新增工单") + public ResponseEntity batchAddOrders(@RequestBody JSONObject entity) { + pdmBdWorkorderService.batchAddOrders(entity); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/getStockMaterial2") + @Log("获取库存物料2") + public ResponseEntity getStockMaterial2(PdmBdWorkorderQuery entity, PageQuery pageQuery) { + return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.getStockMaterial2(entity, pageQuery)), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/IPdmBdWorkorderService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/IPdmBdWorkorderService.java index 2ac49bc..9e3bc69 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/IPdmBdWorkorderService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/IPdmBdWorkorderService.java @@ -78,6 +78,7 @@ public interface IPdmBdWorkorderService extends IService { * @return */ IPage getStockMaterial(PdmBdWorkorderQuery entity, PageQuery pageQuery); + IPage getStockMaterial2(PdmBdWorkorderQuery entity, PageQuery pageQuery); /** * 开工 @@ -86,4 +87,6 @@ public interface IPdmBdWorkorderService extends IService { void submits(PdmBdWorkorder entity); void loadComplete(PdmBdWorkorder entity); + + void batchAddOrders(JSONObject entity); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PdmBdWorkorderMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PdmBdWorkorderMapper.java index 1de1007..e5ab610 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PdmBdWorkorderMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PdmBdWorkorderMapper.java @@ -15,4 +15,5 @@ public interface PdmBdWorkorderMapper extends BaseMapper { IPage selectPageLeftJoin(IPage pages, PdmBdWorkorderQuery query); IPage selectUseMaterialPageLeftJoin(IPage pages, PdmBdWorkorderQuery query); + IPage selectUseMaterialPageLeftJoin2(IPage pages, PdmBdWorkorderQuery query); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PdmBdWorkorderMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PdmBdWorkorderMapper.xml index fa8e703..c8b39f3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PdmBdWorkorderMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PdmBdWorkorderMapper.xml @@ -52,5 +52,32 @@ #{query.blurry}, '%')) + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/impl/PdmBdWorkorderServiceImpl.java index c141127..6d99c97 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pm_manage/service/impl/PdmBdWorkorderServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.wms.pm_manage.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -36,6 +37,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -170,6 +172,12 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl getStockMaterial2(PdmBdWorkorderQuery query, PageQuery page) { + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pages = pdmBdWorkorderMapper.selectUseMaterialPageLeftJoin2(pages, query); + return pages; + } @Override public void submits(PdmBdWorkorder entity) { @@ -196,6 +204,54 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl orders = new ArrayList<>(); + JSONArray materials = entity.getJSONArray("materials"); + for (int i = 0; i < materials.size(); i++) { + JSONObject material = materials.getJSONObject(i); + PdmBdWorkorder order = new PdmBdWorkorder(); + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + String today = DateUtil.format(DateUtil.date(), "yyyyMMdd"); + // 点位编码和点位名称为父点位 + order.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + order.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER")); + order.setPlan_qty(entity.getBigDecimal("plan_qty")); + order.setVehicle_type(entity.getString("vehicle_type")); + order.setRegion_code(entity.getString("region_code")); + order.setRegion_name(entity.getString("region_name")); + order.setPoint_code(entity.getString("point_code")); + order.setPoint_name(entity.getString("point_name")); + order.setPlanproducestart_date(entity.getString("planproducestart_date")); + order.setPlanproduceend_date(entity.getString("planproduceend_date")); + order.setMaterial_id(material.getString("material_id")); + order.setMaterial_name(material.getString("material_name")); + order.setMaterial_spec(material.getString("material_spec")); + order.setMaterial_code(material.getString("material_code")); + order.setStruct_code(material.getString("struct_code")); + order.setRaw_material_code(material.getString("storagevehicle_code")); + order.setPlan_weight(material.getBigDecimal("qty")); + JSONObject data = new JSONObject(); + data.put("pcsn", material.getString("pcsn")); + data.put("supp_code", material.getString("supp_code")); + data.put("supp_name", material.getString("supp_name")); + order.setExt_data(JSONObject.toJSONString(data)); + order.setCreate_id(currentUserId); + order.setCreate_name(nickName); + order.setCreate_time(now); + order.setTeam(CommonUtils.getDayShift()); + order.setProduce_date(today); + order.setUpdate_id(currentUserId); + order.setUpdate_name(nickName); + order.setUpdate_time(now); + orders.add(order); + } + this.saveBatch(orders); + } + /** * 判断工单是否下发、当天工单 * 判断逻辑不能过于复杂,因此提取出来 diff --git a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog.vue b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog.vue index e1c9f4a..0ef5d8e 100644 --- a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog.vue @@ -77,10 +77,10 @@ @select-all="onSelectAll" @current-change="clickChange" > - + @@ -123,7 +123,7 @@ export default { cruds() { return CRUD({ title: '生产任务', - url: 'api/pdmBdWorkorder/getStockMaterial', + url: 'api/pdmBdWorkorder/getStockMaterial2', optShow: {}, query: { is_used: true @@ -202,6 +202,9 @@ export default { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) this.$emit('tableChanged', this.rows, this.flag) + }, + checkSelectable(row, index) { + return row.struct_code !== 'YL' } } } diff --git a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog2.vue b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog2.vue new file mode 100644 index 0000000..19aa435 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/MaterialDialog2.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/batchAddDialog.vue b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/batchAddDialog.vue new file mode 100644 index 0000000..977d1c5 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/batchAddDialog.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/index.vue index a3bab6b..1f7a18c 100644 --- a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/index.vue @@ -61,6 +61,16 @@ + + 批量建单 + + @@ -465,6 +479,7 @@ import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import item from '@/layout/components/Sidebar/Item.vue' import MaterialDialog from '../workerorder/MaterialDialog.vue' +import BatchAddDialog from './batchAddDialog.vue' const defaultForm = { workorder_id: null, @@ -510,7 +525,7 @@ const defaultForm = { export default { name: 'PdmBdWorkorder', dicts: ['storagevehicle_type', 'pdm_workorder_status'], - components: { MaterialDialog, pagination, crudOperation, rrOperation, udOperation }, + components: { BatchAddDialog, MaterialDialog, pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -565,6 +580,7 @@ export default { regionCodeParam: null, materialDialog: false, orderDialog: false, + batchAdd: false, fullscreenLoading: false, materialCode: null, flag: 1 @@ -585,6 +601,10 @@ export default { }, getWorkShopList() { // 获取车间列表 + }, + openBatchAdd() { + console.log('111') + this.batchAdd = true }, getRegionList() { // 获取区域列表 const param = { diff --git a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/pdmBdWorkorder.js b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/pdmBdWorkorder.js index d0d225f..f9be8a9 100644 --- a/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/pdmBdWorkorder.js +++ b/lms/nladmin-ui/src/views/wms/pm_manage/workerorder/pdmBdWorkorder.js @@ -68,5 +68,12 @@ export function getCuster() { method: 'post' }) } +export function batchAddOrders(data) { + return request({ + url: 'api/pdmBdWorkorder/batchAddOrders', + method: 'post', + data + }) +} -export default { add, edit, del, submits, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster } +export default { add, edit, del, submits, loadComplete, forceFinish, orderSynchronize, queryMaterials, getCuster, batchAddOrders }