Browse Source

[feat] 工程管理

新增开发修改单修改页面:新增开发修改单提交方法
新增开发修改单后端加载修改窗口接口
新增开发修改单修改保存后端接口
新增开发修改单 开发修改物料后端查询接口
新增开发修改单 采购修改物料后端查询接口
新增开发修改单提交审批后端接口
新增开发修改单加载审批弹窗后端接口
新增开发修改单自动绑定页面字段后端接口
新增开发修改单 完成任务后端接口
修改开发修改单和开发修改单详情 开发单号字段两者保持一致
dev
liuxiaoxu 7 months ago
parent
commit
88060fce05
  1. 167
      ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderController.java
  2. 12
      ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorder.java
  3. 12
      ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorderDetail.java
  4. 5
      ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderDetailMapper.java
  5. 9
      ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderMapper.java
  6. 24
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderService.java
  7. 132
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderServiceImpl.java
  8. 15
      ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderDetailMapper.xml
  9. 19
      ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderMapper.xml
  10. 744
      ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/edit.html

167
ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderController.java

@ -1,17 +1,27 @@
package com.ruoyi.erp.controller; package com.ruoyi.erp.controller;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.ErpMaterial; import com.ruoyi.erp.domain.ErpMaterial;
import com.ruoyi.erp.domain.ErpMaterialVo; import com.ruoyi.erp.domain.ErpMaterialVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.service.IErpMaterialService; import com.ruoyi.erp.service.IErpMaterialService;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.sales.domain.VO.SalesAftersalesNoticeVO;
import com.ruoyi.system.domain.SysMakeOrder; import com.ruoyi.system.domain.SysMakeOrder;
import com.ruoyi.system.domain.SysMakeorderDept; import com.ruoyi.system.domain.SysMakeorderDept;
import com.ruoyi.system.domain.SysSalesOrderChild; import com.ruoyi.system.domain.SysSalesOrderChild;
import com.ruoyi.system.mapper.SysMakeOrderMapper; import com.ruoyi.system.mapper.SysMakeOrderMapper;
import com.ruoyi.system.service.ISysSalesOrderChildService; import com.ruoyi.system.service.ISysSalesOrderChildService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -26,6 +36,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/** /**
* 开发修改单Controller * 开发修改单Controller
* *
@ -53,6 +66,15 @@ public class ErpDevelopModifyorderController extends BaseController
@Autowired @Autowired
private IErpMaterialService erpMaterialService; private IErpMaterialService erpMaterialService;
@Autowired
private TaskService taskService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private IProcessService processService;
@RequiresPermissions("erp:developModifyOrder:view") @RequiresPermissions("erp:developModifyOrder:view")
@GetMapping() @GetMapping()
@ -117,7 +139,9 @@ public class ErpDevelopModifyorderController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult addSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder) public AjaxResult addSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder)
{ {
return toAjax(erpDevelopModifyorderService.insertErpDevelopModifyorder(erpDevelopModifyorder));
erpDevelopModifyorderService.submitApply(erpDevelopModifyorder);
return AjaxResult.success();
} }
@ -169,6 +193,96 @@ public class ErpDevelopModifyorderController extends BaseController
/**
* 加载审批弹窗
* @param taskId
* @param mmap
* @return
*/
@GetMapping("/showVerifyDialog/{taskId}")
public String showVerifyDialog(@PathVariable("taskId") String taskId, ModelMap mmap) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String processInstanceId = task.getProcessInstanceId();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
ErpDevelopModifyorderVo erpDevelopModifyorderVo = erpDevelopModifyorderService.selectErpDevelopModifyorderById(new Long(processInstance.getBusinessKey()));
mmap.put("formData", erpDevelopModifyorderVo);
mmap.put("taskId", taskId);
String verifyName = task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1);
return prefix + "/task" + verifyName;
}
/**
* 自动绑定页面字段
*/
@ModelAttribute("preloadObj")
public ErpDevelopModifyorderVo getObj(@RequestParam(value = "developOrderId", required = false) Long developOrderId, HttpSession session) {
if (developOrderId != null) {
return erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
}
return new ErpDevelopModifyorderVo();
}
/**
* 完成任务
*
* @return
*/
@RequestMapping(value = "/complete/{taskId}", method = {RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public AjaxResult complete(@PathVariable("taskId") String taskId, @RequestParam(value = "saveEntity", required = false) String saveEntity,
@ModelAttribute("preloadObj") ErpDevelopModifyorderVo erpDevelopModifyorderVo, HttpServletRequest request) {
boolean saveEntityBoolean = BooleanUtils.toBoolean(saveEntity);
//获取实例id
String instanceId = erpDevelopModifyorderVo.getInstanceId();
//获取实例类型
String instanceType = erpDevelopModifyorderVo.getInstanceType();
boolean approvedFlag = processService.complete(taskId, instanceId, erpDevelopModifyorderVo.getApplyTitle(), erpDevelopModifyorderVo.getDevelopOrderCode(), "developModifyOrder", new HashMap<String, Object>(), request);
if(!approvedFlag){
// 审核状态-审核拒绝
erpDevelopModifyorderVo.setAuditStatus("2");
}
// 如果任务已结束更新业务表状态
boolean processIsFinish = processService.judgeProcessIsFinish(instanceId);
if (processIsFinish) {
// 审核通过
erpDevelopModifyorderVo.setAuditStatus("1");
String developOderCode = erpDevelopModifyorderVo.getDevelopOrderCode();
// SalesAftersalesNoticeVO tempSalesAftersalesNoticeVO = salesAftersalesNoticeService.selectSalesAftersalesNoticeByCode(aftersalesNoticeCode);
//
// //如果审核通过生成售后单
// aftersalesOrderService.generateAftersalesOrderBySalesAftersalesNotice(tempSalesAftersalesNoticeVO);
// 提交
if("submit".equals(instanceType)){
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
// 作废
else if("cancel".equals(instanceType)){
// 使用状态-已作废
// erpBomVo.setUseStatus("2");
}
// 恢复
else if("restore".equals(instanceType)){
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
}
erpDevelopModifyorderService.updateErpDevelopModifyorder(erpDevelopModifyorderVo);
// 驳回申请后继续申请,可能修改表单
if (saveEntityBoolean) {
erpDevelopModifyorderService.updateErpDevelopModifyorder(erpDevelopModifyorderVo);
}
return success("任务已完成");
}
/** /**
* 修改开发修改单 * 修改开发修改单
*/ */
@ -176,9 +290,49 @@ public class ErpDevelopModifyorderController extends BaseController
public String edit(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) public String edit(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap)
{ {
ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId); ErpDevelopModifyorder erpDevelopModifyorder = erpDevelopModifyorderService.selectErpDevelopModifyorderById(developOrderId);
mmap.put("beforeUpdateRemark", erpDevelopModifyorder.getBeforeUpdateRemark());
mmap.put("afterUpdateRemark", erpDevelopModifyorder.getAfterUpdateRemark());
mmap.put("erpDevelopModifyorder", erpDevelopModifyorder); mmap.put("erpDevelopModifyorder", erpDevelopModifyorder);
return prefix + "/edit"; return prefix + "/edit";
} }
/**
* 修改保存开发修改单
*/
@RequiresPermissions("erp:developModifyOrder:edit")
@Log(title = "开发修改单", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(@RequestBody ErpDevelopModifyorder erpDevelopModifyorder)
{
return toAjax(erpDevelopModifyorderService.updateErpDevelopModifyorder(erpDevelopModifyorder));
}
/**
* 修改开发修改单 开发修改物料查询
*/
@PostMapping("/getDevelopModifyMaterialById")
@ResponseBody
public TableDataInfo getDevelopModifyMaterialById(@RequestParam("developOrderId") Long developOrderId)
{
startPage();
List<ErpDevelopModifyorder> erpDevelopModifyorderList = erpDevelopModifyorderService.selectDevelopModifyMaterialById(developOrderId);
return getDataTable(erpDevelopModifyorderList);
}
/**
* 修改开发修改单 采购修改物料查询
*/
@PostMapping("/getDevelopModifyDetailMaterialByCode")
@ResponseBody
public TableDataInfo getDevelopModifyDetailMaterialByCode(@RequestParam("developOrderCode") String developOrderCode)
{
startPage();
List<ErpDevelopModifyorderDetail> erpDevelopModifyorderDetailList = erpDevelopModifyorderService.selectDevelopModifyDetailMaterialByCode(developOrderCode);
return getDataTable(erpDevelopModifyorderDetailList);
}
/**相关人员确认*/ /**相关人员确认*/
@GetMapping("/confirm/{developOrderId}") @GetMapping("/confirm/{developOrderId}")
public String confrimDetail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap) public String confrimDetail(@PathVariable("developOrderId") Long developOrderId, ModelMap mmap)
@ -195,17 +349,6 @@ public class ErpDevelopModifyorderController extends BaseController
mmap.put("erpDevelopModifyorder", erpDevelopModifyorder); mmap.put("erpDevelopModifyorder", erpDevelopModifyorder);
return prefix + "/pickAdd"; return prefix + "/pickAdd";
} }
/**
* 修改保存开发修改单
*/
@RequiresPermissions("erp:developModifyOrder:edit")
@Log(title = "开发修改单", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(ErpDevelopModifyorder erpDevelopModifyorder)
{
return toAjax(erpDevelopModifyorderService.updateErpDevelopModifyorder(erpDevelopModifyorder));
}
/** /**
* 查看开发修改单详情 * 查看开发修改单详情

12
ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorder.java

@ -25,7 +25,7 @@ public class ErpDevelopModifyorder extends BaseEntity
/** 开发修改单号 */ /** 开发修改单号 */
@Excel(name = "开发修改单号") @Excel(name = "开发修改单号")
private String developOderCode; private String developOrderCode;
/** 生产单号 */ /** 生产单号 */
@Excel(name = "生产单号") @Excel(name = "生产单号")
@ -162,14 +162,14 @@ public class ErpDevelopModifyorder extends BaseEntity
{ {
return developOrderId; return developOrderId;
} }
public void setDevelopOderCode(String developOderCode) public void setDevelopOrderCode(String developOrderCode)
{ {
this.developOderCode = developOderCode; this.developOrderCode = developOrderCode;
} }
public String getDevelopOderCode() public String getDevelopOrderCode()
{ {
return developOderCode; return developOrderCode;
} }
public void setMaterialNo(String materialNo) public void setMaterialNo(String materialNo)
{ {
@ -426,7 +426,7 @@ public class ErpDevelopModifyorder extends BaseEntity
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("developOrderId", getDevelopOrderId()) .append("developOrderId", getDevelopOrderId())
.append("developOderCode", getDevelopOderCode()) .append("developOrderCode", getDevelopOrderCode())
.append("makeNo",getMakeNo()) .append("makeNo",getMakeNo())
.append("materialNo", getMaterialNo()) .append("materialNo", getMaterialNo())
.append("purchaseStorageStatus", getPurchaseStorageStatus()) .append("purchaseStorageStatus", getPurchaseStorageStatus())

12
ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpDevelopModifyorderDetail.java

@ -22,7 +22,7 @@ public class ErpDevelopModifyorderDetail extends BaseEntity
/** 开发修改单单号 */ /** 开发修改单单号 */
@Excel(name = "开发修改单单号") @Excel(name = "开发修改单单号")
private String developOderCode; private String developOrderCode;
/** 生产单号 */ /** 生产单号 */
@Excel(name = "生产单号") @Excel(name = "生产单号")
@ -82,14 +82,14 @@ public class ErpDevelopModifyorderDetail extends BaseEntity
{ {
return developOrderDetailId; return developOrderDetailId;
} }
public void setDevelopOderCode(String developOderCode) public void setDevelopOrderCode(String developOrderCode)
{ {
this.developOderCode = developOderCode; this.developOrderCode = developOrderCode;
} }
public String getDevelopOderCode() public String getDevelopOrderCode()
{ {
return developOderCode; return developOrderCode;
} }
public void setMakeNo(String makeNo) public void setMakeNo(String makeNo)
{ {
@ -204,7 +204,7 @@ public class ErpDevelopModifyorderDetail extends BaseEntity
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("developOrderDetailId", getDevelopOrderDetailId()) .append("developOrderDetailId", getDevelopOrderDetailId())
.append("developOderCode", getDevelopOderCode()) .append("developOrderCode", getDevelopOrderCode())
.append("makeNo", getMakeNo()) .append("makeNo", getMakeNo())
.append("materialNo", getMaterialNo()) .append("materialNo", getMaterialNo())
.append("materialName", getMaterialName()) .append("materialName", getMaterialName())

5
ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderDetailMapper.java

@ -74,4 +74,9 @@ public interface ErpDevelopModifyorderDetailMapper
* @return 结果 * @return 结果
*/ */
public int restoreErpDevelopModifyorderDetailById(Long developOrderDetailId); public int restoreErpDevelopModifyorderDetailById(Long developOrderDetailId);
/**
* 根据开发修改单号查询开发修改详情物料信息
* */
List<ErpDevelopModifyorderDetail> selectDevelopModifyDetailMaterialByCode(String developOrderCode);
} }

9
ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderMapper.java

@ -2,6 +2,7 @@ package com.ruoyi.erp.mapper;
import java.util.List; import java.util.List;
import com.ruoyi.erp.domain.ErpDevelopModifyorder; import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
/** /**
* 开发修改单Mapper接口 * 开发修改单Mapper接口
@ -17,7 +18,7 @@ public interface ErpDevelopModifyorderMapper
* @param developOrderId 开发修改单ID * @param developOrderId 开发修改单ID
* @return 开发修改单 * @return 开发修改单
*/ */
public ErpDevelopModifyorder selectErpDevelopModifyorderById(Long developOrderId); public ErpDevelopModifyorderVo selectErpDevelopModifyorderById(Long developOrderId);
/** /**
* 查询开发修改单列表 * 查询开发修改单列表
@ -74,4 +75,10 @@ public interface ErpDevelopModifyorderMapper
* @return 结果 * @return 结果
*/ */
public int restoreErpDevelopModifyorderById(Long developOrderId); public int restoreErpDevelopModifyorderById(Long developOrderId);
/**
* 根据开发修改单查询开发修改物料
* */
List<ErpDevelopModifyorder> selectDevelopModifyMaterialById(Long developOrderId);
} }

24
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderService.java

@ -2,6 +2,10 @@ package com.ruoyi.erp.service;
import java.util.List; import java.util.List;
import com.ruoyi.erp.domain.ErpDevelopModifyorder; import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.system.domain.SysSalesOrder;
import org.activiti.engine.runtime.ProcessInstance;
/** /**
* 开发修改单Service接口 * 开发修改单Service接口
@ -17,7 +21,7 @@ public interface IErpDevelopModifyorderService
* @param developOrderId 开发修改单ID * @param developOrderId 开发修改单ID
* @return 开发修改单 * @return 开发修改单
*/ */
public ErpDevelopModifyorder selectErpDevelopModifyorderById(Long developOrderId); public ErpDevelopModifyorderVo selectErpDevelopModifyorderById(Long developOrderId);
/** /**
* 查询开发修改单列表 * 查询开发修改单列表
@ -72,4 +76,22 @@ public interface IErpDevelopModifyorderService
* @return * @return
*/ */
int restoreErpDevelopModifyorderById(Long developOrderId); int restoreErpDevelopModifyorderById(Long developOrderId);
/**
* 审批流程启动
* */
ProcessInstance submitApply(ErpDevelopModifyorder erpDevelopModifyorder);
/**
* 根据开发修改单id查询开发修改物料
* */
List<ErpDevelopModifyorder> selectDevelopModifyMaterialById(Long developOrderId);
/**
* 根据开发修改单号查询开发修改详情物料信息
* */
List<ErpDevelopModifyorderDetail> selectDevelopModifyDetailMaterialByCode(String developOrderCode);
} }

132
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderServiceImpl.java

@ -1,19 +1,29 @@
package com.ruoyi.erp.service.impl; package com.ruoyi.erp.service.impl;
import java.util.List; import java.util.*;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail; import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderMaterialVo; import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderMaterialVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper; import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.sales.domain.SalesAftersalesNotice;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysRoleService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.erp.mapper.ErpDevelopModifyorderMapper; import com.ruoyi.erp.mapper.ErpDevelopModifyorderMapper;
import com.ruoyi.erp.domain.ErpDevelopModifyorder; import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.service.IErpDevelopModifyorderService; import com.ruoyi.erp.service.IErpDevelopModifyorderService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 开发修改单Service业务层处理 * 开发修改单Service业务层处理
@ -33,6 +43,22 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@Autowired
private IProcessService processService;
@Autowired
private ISysRoleService roleService;
@Autowired
private SysUserMapper userMapper;
@Autowired
private TaskService taskService;
@Autowired
private BizTodoItemMapper todoItemMapper;
/** /**
* 查询开发修改单 * 查询开发修改单
* *
@ -40,7 +66,7 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
* @return 开发修改单 * @return 开发修改单
*/ */
@Override @Override
public ErpDevelopModifyorder selectErpDevelopModifyorderById(Long developOrderId) public ErpDevelopModifyorderVo selectErpDevelopModifyorderById(Long developOrderId)
{ {
return erpDevelopModifyorderMapper.selectErpDevelopModifyorderById(developOrderId); return erpDevelopModifyorderMapper.selectErpDevelopModifyorderById(developOrderId);
} }
@ -71,7 +97,7 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
erpDevelopModifyorder.setCreateTime(DateUtils.getNowDate()); erpDevelopModifyorder.setCreateTime(DateUtils.getNowDate());
String developOderCode = redisCache.generateBillNo("KF"); String developOderCode = redisCache.generateBillNo("KF");
erpDevelopModifyorder.setDevelopOderCode(developOderCode); erpDevelopModifyorder.setDevelopOrderCode(developOderCode);
ErpDevelopModifyorderMaterialVo erpDevelopModifyorderMaterialVo = erpDevelopModifyorder.getDevelopModifyorderMaterialVoList().get(0); ErpDevelopModifyorderMaterialVo erpDevelopModifyorderMaterialVo = erpDevelopModifyorder.getDevelopModifyorderMaterialVoList().get(0);
erpDevelopModifyorder.setMaterialNo(erpDevelopModifyorderMaterialVo.getMaterialNo()); erpDevelopModifyorder.setMaterialNo(erpDevelopModifyorderMaterialVo.getMaterialNo());
@ -83,7 +109,7 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
//添加采购物料相关数据 //添加采购物料相关数据
ErpDevelopModifyorderDetail erpDevelopModifyorderDetail = erpDevelopModifyorder.getDevelopModifyorderDetailList().get(0); ErpDevelopModifyorderDetail erpDevelopModifyorderDetail = erpDevelopModifyorder.getDevelopModifyorderDetailList().get(0);
erpDevelopModifyorderDetail.setDevelopOderCode(developOderCode); erpDevelopModifyorderDetail.setDevelopOrderCode(developOderCode);
developModifyorderDetailMapper.insertErpDevelopModifyorderDetail(erpDevelopModifyorderDetail); developModifyorderDetailMapper.insertErpDevelopModifyorderDetail(erpDevelopModifyorderDetail);
@ -96,12 +122,20 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
* @param erpDevelopModifyorder 开发修改单 * @param erpDevelopModifyorder 开发修改单
* @return 结果 * @return 结果
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public int updateErpDevelopModifyorder(ErpDevelopModifyorder erpDevelopModifyorder) public int updateErpDevelopModifyorder(ErpDevelopModifyorder erpDevelopModifyorder)
{ {
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
erpDevelopModifyorder.setUpdateBy(loginName); erpDevelopModifyorder.setUpdateBy(loginName);
erpDevelopModifyorder.setUpdateTime(DateUtils.getNowDate()); erpDevelopModifyorder.setUpdateTime(new Date());
//添加采购物料相关数据
ErpDevelopModifyorderDetail erpDevelopModifyorderDetail = erpDevelopModifyorder.getDevelopModifyorderDetailList().get(0);
erpDevelopModifyorderDetail.setUpdateBy(loginName);
erpDevelopModifyorderDetail.setUpdateTime(new Date());
developModifyorderDetailMapper.updateErpDevelopModifyorderDetail(erpDevelopModifyorderDetail);
return erpDevelopModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); return erpDevelopModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder);
} }
@ -152,4 +186,92 @@ public class ErpDevelopModifyorderServiceImpl implements IErpDevelopModifyorderS
{ {
return erpDevelopModifyorderMapper.restoreErpDevelopModifyorderById(developOrderId); return erpDevelopModifyorderMapper.restoreErpDevelopModifyorderById(developOrderId);
} }
@Transactional(rollbackFor = Exception.class)
@Override
public ProcessInstance submitApply(ErpDevelopModifyorder erpDevelopModifyorder) {
SysUser user = ShiroUtils.getSysUser();
erpDevelopModifyorder.setAuditStatus("0");
erpDevelopModifyorder.setPurchaseStorageStatus("0");
erpDevelopModifyorder.setQualityStatus("0");
erpDevelopModifyorder.setCompleteStatus("0");
erpDevelopModifyorder.setFinshStatus("0");
//插入数据
insertErpDevelopModifyorder(erpDevelopModifyorder);
// 启动流程
String applyTitle = user.getUserName()+"发起了开发修改单提交审批-"+DateUtils.dateTimeNow();
String instanceType = "submit";
ProcessInstance processInstance = startProcessInstance(applyTitle,instanceType,erpDevelopModifyorder, user);
String processInstanceId = processInstance.getProcessInstanceId();
// 提交实例id
erpDevelopModifyorder.setSubmitInstanceId(processInstanceId);
// 存在提交完就流程结束的情况
boolean processIsFinish = processService.judgeProcessIsFinish(processInstanceId);
if(processIsFinish){
// 审核状态-审核通过
erpDevelopModifyorder.setAuditStatus("1");
}
erpDevelopModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder);
return processInstance;
}
/**
* 根据开发修改单查询开发修改物料
* */
@Override
public List<ErpDevelopModifyorder> selectDevelopModifyMaterialById(Long developOrderId) {
return erpDevelopModifyorderMapper.selectDevelopModifyMaterialById(developOrderId);
}
/**
* 根据开发修改单号查询开发修改详情物料信息
* */
@Override
public List<ErpDevelopModifyorderDetail> selectDevelopModifyDetailMaterialByCode(String developOrderCode) {
return developModifyorderDetailMapper.selectDevelopModifyDetailMaterialByCode(developOrderCode);
}
/**
* 创建售后单审核流程
* @param applyTitle
* @param instanceType
* @param user
* @return
*/
private ProcessInstance startProcessInstance(String applyTitle, String instanceType, ErpDevelopModifyorder erpDevelopModifyorder, SysUser user) {
Long developOrderId = erpDevelopModifyorder.getDevelopOrderId();
String businessKey = developOrderId.toString(); // 实体类 ID,作为流程的业务 key
String key = "developModifyOrder";
Map<String,Object> variables = new HashMap<>();
// 构造authority传参
buildAuthority(user, variables);
erpDevelopModifyorder.setApplyTitle(applyTitle);
// 启动流程
ProcessInstance processInstance = processService.submitApply(user.getLoginName(), businessKey, applyTitle, erpDevelopModifyorder.getDevelopOrderCode(), key, variables);
String processInstanceId = processInstance.getId();
erpDevelopModifyorder.setInstanceId(processInstanceId); // 建立双向关系
erpDevelopModifyorder.setInstanceType(instanceType);
return processInstance;
}
/**
* 发起人节点判断
* */
private void buildAuthority(SysUser user, Map<String, Object> variables) {
Set<String> roleKeys = roleService.selectRoleKeys(user.getUserId());
// 角色不同审核人不同
if(roleKeys.contains("gcwyRole")){
variables.put("authority",1);
}else if(roleKeys.contains("gcjlRole")){
variables.put("authority",2);
}else if(roleKeys.contains("gczgRole")){
variables.put("authority",3);
}
}
} }

15
ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderDetailMapper.xml

@ -6,7 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="ErpDevelopModifyorderDetail" id="ErpDevelopModifyorderDetailResult"> <resultMap type="ErpDevelopModifyorderDetail" id="ErpDevelopModifyorderDetailResult">
<result property="developOrderDetailId" column="develop_order_detail_id" /> <result property="developOrderDetailId" column="develop_order_detail_id" />
<result property="developOderCode" column="develop_oder_code" /> <result property="developOrderCode" column="develop_order_code" />
<result property="makeNo" column="make_no" /> <result property="makeNo" column="make_no" />
<result property="materialNo" column="material_no" /> <result property="materialNo" column="material_no" />
<result property="materialName" column="material_name" /> <result property="materialName" column="material_name" />
@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectErpDevelopModifyorderDetailVo"> <sql id="selectErpDevelopModifyorderDetailVo">
select develop_order_detail_id, develop_oder_code, make_no, material_no, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, bom_id, material_num, update_finish_time, create_by, create_time, update_by, update_time, remark from erp_develop_modifyorder_detail select develop_order_detail_id, develop_order_code, make_no, material_no, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, bom_id, material_num, update_finish_time, create_by, create_time, update_by, update_time, remark from erp_develop_modifyorder_detail
</sql> </sql>
<select id="selectErpDevelopModifyorderDetailList" parameterType="ErpDevelopModifyorderDetail" resultMap="ErpDevelopModifyorderDetailResult"> <select id="selectErpDevelopModifyorderDetailList" parameterType="ErpDevelopModifyorderDetail" resultMap="ErpDevelopModifyorderDetailResult">
@ -41,10 +41,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where develop_order_detail_id = #{developOrderDetailId} where develop_order_detail_id = #{developOrderDetailId}
</select> </select>
<select id="selectDevelopModifyDetailMaterialByCode" parameterType="String" resultMap="ErpDevelopModifyorderDetailResult">
<include refid="selectErpDevelopModifyorderDetailVo"/>
where develop_order_code = #{developOrderCode}
</select>
<insert id="insertErpDevelopModifyorderDetail" parameterType="ErpDevelopModifyorderDetail" useGeneratedKeys="true" keyProperty="developOrderDetailId"> <insert id="insertErpDevelopModifyorderDetail" parameterType="ErpDevelopModifyorderDetail" useGeneratedKeys="true" keyProperty="developOrderDetailId">
insert into erp_develop_modifyorder_detail insert into erp_develop_modifyorder_detail
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="developOderCode != null">develop_oder_code,</if> <if test="developOrderCode != null">develop_order_code,</if>
<if test="makeNo != null">make_no,</if> <if test="makeNo != null">make_no,</if>
<if test="materialNo != null">material_no,</if> <if test="materialNo != null">material_no,</if>
<if test="materialName != null">material_name,</if> <if test="materialName != null">material_name,</if>
@ -64,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="developOderCode != null">#{developOderCode},</if> <if test="developOrderCode != null">#{developOrderCode},</if>
<if test="makeNo != null">#{makeNo},</if> <if test="makeNo != null">#{makeNo},</if>
<if test="materialNo != null">#{materialNo},</if> <if test="materialNo != null">#{materialNo},</if>
<if test="materialName != null">#{materialName},</if> <if test="materialName != null">#{materialName},</if>
@ -88,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateErpDevelopModifyorderDetail" parameterType="ErpDevelopModifyorderDetail"> <update id="updateErpDevelopModifyorderDetail" parameterType="ErpDevelopModifyorderDetail">
update erp_develop_modifyorder_detail update erp_develop_modifyorder_detail
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="developOderCode != null">develop_oder_code = #{developOderCode},</if> <if test="developOrderCode != null">develop_order_code = #{developOrderCode},</if>
<if test="makeNo != null">make_no = #{makeNo},</if> <if test="makeNo != null">make_no = #{makeNo},</if>
<if test="materialNo != null">material_no = #{materialNo},</if> <if test="materialNo != null">material_no = #{materialNo},</if>
<if test="materialName != null">material_name = #{materialName},</if> <if test="materialName != null">material_name = #{materialName},</if>

19
ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderMapper.xml

@ -6,7 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="ErpDevelopModifyorderVo" id="ErpDevelopModifyorderResult"> <resultMap type="ErpDevelopModifyorderVo" id="ErpDevelopModifyorderResult">
<result property="developOrderId" column="develop_order_id" /> <result property="developOrderId" column="develop_order_id" />
<result property="developOderCode" column="develop_oder_code" /> <result property="developOrderCode" column="develop_order_code" />
<result property="makeNo" column="make_no"/> <result property="makeNo" column="make_no"/>
<result property="materialNo" column="material_no" /> <result property="materialNo" column="material_no" />
<result property="purchaseStorageStatus" column="purchase_storage_status" /> <result property="purchaseStorageStatus" column="purchase_storage_status" />
@ -44,16 +44,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectErpDevelopModifyorderVo"> <sql id="selectErpDevelopModifyorderVo">
select develop_order_id, develop_oder_code, make_no, material_no, purchase_storage_status, quality_status, audit_status, complete_status, finsh_status, use_status, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, user_id, update_finish_time, before_update_remark, after_update_remark, create_by, create_time, user_name, update_by, update_time, remark, instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id from erp_develop_modifyorder select develop_order_id, develop_order_code, make_no, material_no, purchase_storage_status, quality_status, audit_status, complete_status, finsh_status, use_status, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, user_id, update_finish_time, before_update_remark, after_update_remark, create_by, create_time, user_name, update_by, update_time, remark, instance_id, instance_type, submit_instance_id, apply_title, apply_time, apply_user, cancel_instance_id, restore_instance_id from erp_develop_modifyorder
</sql> </sql>
<select id="selectErpDevelopModifyorderList" parameterType="ErpDevelopModifyorder" resultMap="ErpDevelopModifyorderResult"> <select id="selectErpDevelopModifyorderList" parameterType="ErpDevelopModifyorder" resultMap="ErpDevelopModifyorderResult">
select edm.develop_order_id, edm.develop_oder_code, edm.material_no, edm.purchase_storage_status, edm.quality_status, edm.audit_status, edm.complete_status, edm.finsh_status, edm.use_status, edm.material_name, edm.material_type, edm.material_photo_url, edm.material_unit, edm.material_brand, edm.material_describe, edm.material_process_method, edm.user_id, edm.create_by, edm.create_time, edm.update_by, edm.update_time, edm.remark,su.user_name select edm.develop_order_id, edm.develop_order_code, edm.material_no, edm.purchase_storage_status, edm.quality_status, edm.audit_status, edm.complete_status, edm.finsh_status, edm.use_status, edm.material_name, edm.material_type, edm.material_photo_url, edm.material_unit, edm.material_brand, edm.material_describe, edm.material_process_method, edm.user_id, edm.create_by, edm.create_time, edm.update_by, edm.update_time, edm.remark,su.user_name
from erp_develop_modifyorder edm from erp_develop_modifyorder edm
left join sys_user su on su.user_id = edm.user_id left join sys_user su on su.user_id = edm.user_id
<where> <where>
<if test="developOderCode != null and developOderCode != ''"> and edm.develop_oder_code = #{developOderCode}</if> <if test="developOrderCode != null and developOrderCode != ''"> and edm.develop_order_code = #{developOrderCode}</if>
<if test="materialNo != null and materialNo != ''"> and edm.material_no = #{materialNo}</if> <if test="materialNo != null and materialNo != ''"> and edm.material_no = #{materialNo}</if>
<if test="auditStatus != null and auditStatus != ''"> and edm.audit_status = #{auditStatus}</if> <if test="auditStatus != null and auditStatus != ''"> and edm.audit_status = #{auditStatus}</if>
<if test="finshStatus != null and finshStatus != ''"> and edm.finsh_status = #{finshStatus}</if> <if test="finshStatus != null and finshStatus != ''"> and edm.finsh_status = #{finshStatus}</if>
@ -68,10 +68,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where develop_order_id = #{developOrderId} where develop_order_id = #{developOrderId}
</select> </select>
<select id="selectDevelopModifyMaterialById" parameterType="Long" resultMap="ErpDevelopModifyorderResult">
<include refid="selectErpDevelopModifyorderVo"/>
where develop_order_id = #{developOrderId}
</select>
<insert id="insertErpDevelopModifyorder" parameterType="ErpDevelopModifyorderVo" useGeneratedKeys="true" keyProperty="developOrderId"> <insert id="insertErpDevelopModifyorder" parameterType="ErpDevelopModifyorderVo" useGeneratedKeys="true" keyProperty="developOrderId">
insert into erp_develop_modifyorder insert into erp_develop_modifyorder
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="developOderCode != null">develop_oder_code,</if> <if test="developOrderCode != null">develop_order_code,</if>
<if test="makeNo != null">make_no,</if> <if test="makeNo != null">make_no,</if>
<if test="materialNo != null">material_no,</if> <if test="materialNo != null">material_no,</if>
<if test="purchaseStorageStatus != null">purchase_storage_status,</if> <if test="purchaseStorageStatus != null">purchase_storage_status,</if>
@ -107,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="restoreInstanceId != null">restore_instance_id,</if> <if test="restoreInstanceId != null">restore_instance_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="developOderCode != null">#{developOderCode},</if> <if test="developOrderCode != null">#{developOrderCode},</if>
<if test="makeNo != null">#{makeNo},</if> <if test="makeNo != null">#{makeNo},</if>
<if test="materialNo != null">#{materialNo},</if> <if test="materialNo != null">#{materialNo},</if>
<if test="purchaseStorageStatus != null">#{purchaseStorageStatus},</if> <if test="purchaseStorageStatus != null">#{purchaseStorageStatus},</if>
@ -147,7 +152,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateErpDevelopModifyorder" parameterType="ErpDevelopModifyorderVo"> <update id="updateErpDevelopModifyorder" parameterType="ErpDevelopModifyorderVo">
update erp_develop_modifyorder update erp_develop_modifyorder
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="developOderCode != null">develop_oder_code = #{developOderCode},</if> <if test="developOrderCode != null">develop_order_code = #{developOrderCode},</if>
<if test="makeNo != null">make_no = #{makeNo},</if> <if test="makeNo != null">make_no = #{makeNo},</if>
<if test="materialNo != null">material_no = #{materialNo},</if> <if test="materialNo != null">material_no = #{materialNo},</if>
<if test="purchaseStorageStatus != null">purchase_storage_status = #{purchaseStorageStatus},</if> <if test="purchaseStorageStatus != null">purchase_storage_status = #{purchaseStorageStatus},</if>

744
ruoyi-admin/src/main/resources/templates/erp/developModifyOrder/edit.html

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head> <head>
<th:block th:include="include :: header('修改开发修改单')" /> <th:block th:include="include :: header('开发修改单修改')" />
<th:block th:include="include :: select2-css" /> <th:block th:include="include :: select2-css" />
<th:block th:include="include :: datetimepicker-css" /> <th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: bootstrap-editable-css" /> <th:block th:include="include :: bootstrap-editable-css" />
@ -9,277 +9,484 @@
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-developModifyOrder-edit" th:object="${erpDevelopModifyorder}"> <form class="form-horizontal m" id="form-developModifyOrder-edit" th:object="${erpDevelopModifyorder}">
<input name="developOrderId" th:field="*{developOrderId}" type="hidden"> <input id="developOrderId" name="developOrderId" th:field="*{developOrderId}" type="text" hidden>
<div class="form-row"> <input id="developOrderCode" name="developOrderCode" th:field="*{developOrderCode}" type="text" hidden>
<label class="col-sm-3 control-label">开发修改单号:</label>
<div class="col-sm-8">
<input name="developOderCode" th:field="*{developOderCode}" class="form-control" type="text">
</div>
</div>
<div class="col-xs-12">
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">生产单号:</label> <label class="col-sm-4 control-label is-required">生产单号:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<select id="makeNo" name="makeNo" class="form-control" type="text" required> <select class="form-control" th:field="*{makeNo}" id="makeNo" name="makeNo" required disabled>
<option value="">请选择</option> <!-- 这里动态生成生产单号选项 -->
</select> </select>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">修改完成时间:</label> <label class="col-sm-5 control-label is-required">修改完成时间:</label>
<div class="col-sm-7">
<div class="input-group date"> <div class="input-group date">
<input name="updateInfoTime" class="form-control" placeholder="yyyy-MM-dd" type="text"> <input name="updateFinishTime" th:value="${#dates.format(erpDevelopModifyorder.updateFinishTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" required>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>
</div> </div>
</form> </form>
<div class="container"> <div class="container">
<div class="form-row"> <div class="form-row my-5"> <!-- 添加my-4类 -->
<div class="btn-group-sm" role="group"> <div class="btn-group-sm" role="group">
<span>选择开发修改单物料</span> <span>选择开发修改单物料</span>
<a class="btn btn-success" onclick="insertRow()"> <a class="btn btn-success" onclick="insertDevelopModify()">
<i class="fa fa-plus"></i> 添加修改物料 <i class="fa fa-plus"></i> 添加修改物料
</a> </a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-sub-table-developModify"></table> <table id="bootstrap-table-developModify"></table>
</div> </div>
</div> </div>
</div> <div class="form-group">
<div class="container"> <label class="col-sm-4 control-label is-required">修改前说明:</label>
<div class="form-row"> <div class="col-sm-6">
<div class="btn-group-sm" role="group"> <textarea id="beforeUpdateRemark" name="beforeUpdateRemark" class="form-control" required>[[*{beforeUpdateRemark}]]</textarea>
<span>选择采购物料</span>
<a class="btn btn-success" onclick="insertRow2()">
<i class="fa fa-plus"></i> 添加修改物料
</a>
</div> </div>
</div> </div>
<div class="row"> <div class="form-group">
<div class="col-sm-12 select-table table-striped"> <label class="col-sm-4 control-label is-required">修改后说明:</label>
<table id="bootstrap-sub-table-material"></table> <div class="col-sm-6">
<textarea id="afterUpdateRemark" name="afterUpdateRemark" class="form-control" required>[[*{afterUpdateRemark}]]</textarea>
</div> </div>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
<div class="form-row"> <div class="form-row">
<div class="btn-group-sm" role="group"> <div class="btn-group-sm" role="group">
<span>选择通知人</span> <span>选择采购物料</span>
<a class="btn btn-success" onclick="insertRow3()"> <a class="btn btn-success" onclick="insertPurchase()">
<i class="fa fa-plus"></i> 添加通知人 <i class="fa fa-plus"></i> 添加修改物料
</a> </a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">
<table id="bootstrap-sub-table-biztoitem"></table> <table id="bootstrap-table-purchase"></table>
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="container">-->
<!-- <div class="form-row">-->
<!-- <div class="btn-group-sm" role="group">-->
<!-- <span>选择通知人</span>-->
<!-- <a class="btn btn-success" onclick="insertBiztoitem()">-->
<!-- <i class="fa fa-plus"></i> 添加通知人-->
<!-- </a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="row">-->
<!-- <div class="col-sm-12 select-table table-striped">-->
<!-- <table id="bootstrap-table-biztoitem"></table>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div> </div>
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-editable-js" /> <th:block th:include="include :: bootstrap-table-editable-js" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: select2-js" /> <th:block th:include="include :: select2-js" />
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "erp/developModifyOrder"; var prefix = ctx + "erp/developModifyOrder";
var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]]; var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var levelDatas = [[${@dict.getType('bomLevel')}]];
var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]]; var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]]; var processMethodDatas = [[${@dict.getType('processMethod')}]];
var loginName = [[${@permission.getPrincipalProperty('loginName')}]]; var loginName = [[${@permission.getPrincipalProperty('loginName')}]];
var userName = [[${@permission.getPrincipalProperty('userName')}]]; var userName = [[${@permission.getPrincipalProperty('userName')}]];
var prefix = ctx + "erp/developModifyOrder";
$("#form-developModifyOrder-edit").validate({ focusCleanup: true}); $("#form-developModifyOrder-edit").validate({ focusCleanup: true});
$(function () {
$("#makeNo").select2({ $("input[name='updateFinishTime']").datetimepicker({
theme: "bootstrap", format: "yyyy-mm-dd",
allowClear: true, minView: "month",
placeholder: "请选择生产单号", autoclose: true
ajax: { });
url: ctx + "/system/makeorder/getAllMakeNos",
dataType: 'json',
type: "POST",
delay: 250, // 新增提交
processResults: function (res, params) { function submitHandler() {
var options = []; // 获取表单数据
if(res.code==0){ const developModifyOrderData = $("#form-developModifyOrder-edit").serializeArray().reduce((obj, item) => {
var resultList = res.data; obj[item.name] = item.value;
console.log(resultList); return obj;
for(var i= 0, len=resultList.length;i<len;i++){ }, {});
var option = resultList[i];
option.id = resultList[i]["makeNo"]; var beforeUpdateRemark = $("#beforeUpdateRemark").val();
option.text = resultList[i]["makeNo"];
options.push(option); var afterUpdateRemark = $("#afterUpdateRemark").val();
}
} // 开发修改物料
var developModifyTable = $('#bootstrap-table-developModify').bootstrapTable('getData');
// 采购修改物料
var purchaseTable = $('#bootstrap-table-purchase').bootstrapTable('getData');
// 将表数据转换成与developModifyOrderData格式一致的数组
var developModifyMaterialDataList = developModifyTable.map(function(item) {
// 根据实际字段名调整
return {
"materialNo": item.materialNo,
"materialName": item.materialName,
"materialType": item.materialType,
"materialPhotourl": item.materialPhotourl,
"materialDescribe": item.materialDescribe,
"materialBrand": item.materialBrand,
"materialUnit": item.materialUnit,
"materialProcessMethod": item.materialProcessMethod,
// ...其他字段
};
});
// 将表数据转换成与developModifyOrderData格式一致的数组
var purchaseMaterialDataList = purchaseTable.map(function(item) {
// 根据实际字段名调整
return { return {
results: options "developOrderDetailId":item.developOrderDetailId,
"materialNo": item.materialNo,
"materialName": item.materialName,
"materialType": item.materialType,
"materialPhotourl": item.materialPhotourl,
"materialDescribe": item.materialDescribe,
"materialBrand": item.materialBrand,
"materialUnit": item.materialUnit,
"materialProcessMethod": item.materialProcessMethod,
"bomId":item.bomId,
"materialNum":item.materialNum
// ...其他字段
}; };
});
const combinedData = Object.assign({}, developModifyOrderData, {
developModifyorderMaterialVoList: developModifyMaterialDataList,
developModifyorderDetailList:purchaseMaterialDataList,
beforeUpdateRemark:beforeUpdateRemark,
afterUpdateRemark:afterUpdateRemark
});
// 合并表单数据和表格数据
console.log(combinedData)
// 使用 JSON.stringify() 序列化数据
const jsonData = JSON.stringify(combinedData);
// 发送 AJAX 请求到后端接口
$.operate.saveJson(prefix + "/edit", jsonData);
}
/*加载所有的关联生产单号*/
loadAllMakeNos();
/*加载所有的关联生产单号*/
function loadAllMakeNos(){
var url = ctx + 'system/makeorder/getAllMakeNos';
$.ajax({
type:'GET',//请求类型
url:url,//后端接口url
dataType:'json', //预期服务器返回数据类型
success: function (data){
if (data && Array.isArray(data)){
var selectElement = $('#makeNo'); //获取生产编号下拉框元素
//清空下拉框现有选项
selectElement.empty();
//遍历返回的数据,添加下拉框的选项
$.each(data,function (index,item){
//赋值遍历数据中的makeNo到下拉框中
selectElement.append('<option value="'+item.makeNo+'">'+item.makeNo+'</option>');
})
}else {
$.modal.error("数据为空");
} }
} }
}); })
}
// 点击选择物料按钮
function insertDevelopModify() {
var selectedMakeNo = $("#makeNo").val();
if (!selectedMakeNo) {
$.modal.alertWarning("请先选择生产单号。");
return;
}
var encodedMakeNo = encodeURIComponent(selectedMakeNo);
var url = prefix + '/developModifyMaterialSelect?makeNo=' + encodedMakeNo;
var options = { var options = {
id: "bootstrap-sub-table-developModify", title: '选择物料',
// url: prefix + "/getDevelopModifyOrderList", url: url,
callBack: developModifyDoSubmit
};
$.modal.openOptions(options);
}
//物料信息展示列表
$(function() {
var options = {
id:'bootstrap-table-developModify',
url: prefix+'/getDevelopModifyMaterialById',
queryParams: developModifyQueryParams,
showSearch: false, showSearch: false,
showRefresh: false, showRefresh: false,
showToggle: false, showToggle: false,
showColumns: false, showColumns: false,
columns: [ pagination: false, // 设置不分页
{checkbox: true}, modalName: "选择物料",
{field: 'index',align: 'center', title: "序号", columns: [{
formatter: function (value, row, index) { checkbox: true
var columnIndex = $.common.sprintf("<input type='hidden' name='index' value='%s'>", $.table.serialNumber(index));
return columnIndex + $.table.serialNumber(index);
}
}, },
{title: '物料索引id',field: 'materialId',align: 'center',visible: false}, {
{title: '料号',field: 'materialCode',align: 'center'}, title: '料号',
{title: '物料名称',field: 'materialName',align: 'center'}, field: 'materialNo',
{title: '图片',field: 'photoUrl',
formatter: function(value, row, index) {
if(value == null || value == ""){
value = "";
return "<img src='' herf='' />";
}
return $.table.imageView(value);
}
}, },
{title: '物料类型',field: 'materialType',align: 'center', {
title: '图片',
field: 'materialPhotourl',
},
{
title: '物料名称',
field: 'materialName',
},
{
title: '物料类型',
field: 'materialType',
formatter: function(value, row, index) { formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value); return $.table.selectCategoryLabel(materialTypeDatas, value);
} }
}, },
{ title: '描述',field: 'describe',align: 'center'}, {
{title: '品牌',field: 'brand',align: 'center'}, title: '品牌',
{ title: '单位',field: 'unit',align: 'center', field: 'materialBrand',
formatter: function(value, row, index) { },
return $.table.selectDictLabel(sysUnitClassDatas, value); {
} title: '描述',
field: 'materialDescribe',
}, },
{title: '半成品类型',field: 'processMethod',align: 'center', {
title: '单位',
field: 'materialUnit',
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) { formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value); return $.table.selectDictLabel(processMethodDatas, value);
} }
}, },
{ title: '对外售价',field: 'materialSole',}, {
{title: '国内税率',field: 'countTax',align: 'center',}, title: '操作',
{ title: '美元汇率',field: 'usdTax', align: 'center',}, align: 'center',
{field: 'materialNum',align: 'center',title: '物料的数量',}, formatter: function(value, row, index) {
{ title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center',}, var actions = [];
{title: '物料的不含税单价(美元)',field: 'materialNoUsd',align: 'center',}, actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removeDevelopModify(\'' + row.materialNo + '\')"><i class="fa fa-remove"></i>删除</a> ');
{title: '修改详情',align: 'center', return actions.join('');
formatter:function formatterForm(value, row, index) { }
// 这里的代码会为每行生成一个表单 }
var form = $('<form></form>').append(
$('<input/>', { type: 'text', value: row.name, name: 'name', placeholder: 'Name' }),
$('<input/>', { type: 'email', value: row.email, name: 'email', placeholder: 'Email' }),
$('<button/>', { type: 'submit' }).text('Submit')
);
form.on('submit', function(e) {
e.preventDefault(); // 阻止表单默认提交行为
var formData = form.serializeArray(); // 序列化表单数据为数组
console.log(formData); // 在控制台输出表单数据
// 这里可以添加代码处理表单提交,例如发送到服务器等
});
return form; // 返回生成的表单HTML
}},
] ]
}; };
$.table.init(options); $.table.init(options);
})
function developModifyQueryParams(params) {
var curParams = {
// 传递参数查询参数
developOrderId: $("#developOrderId").val()
};
console.log(curParams);
return curParams;
}
function developModifyDoSubmit(index, layero,uniqueId){
console.log(uniqueId);
var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-developModifyMaterialSelect-table').bootstrapTable('getSelections')[0];
//判断是否重复
var rows = $("#bootstrap-table-developModify").bootstrapTable('getData').length;
if (rows > 0){
$.modal.alertError("每次只能修改一条物料!");
return;
}
// for(var i=0;i<rows;i++){
// var data = $("#bootstrap-table-developModify").bootstrapTable('getData')[i];
// if(data.materialNo==rowData.materialNo){
// $.modal.alertError("不能选择已添加过的相同物料");
// return;
// }
// }
console.log("rowData: "+rowData);
$("#bootstrap-table-developModify").bootstrapTable('insertRow', {
index:1,
row: {
materialNo:rowData.materialCode,
materialPhotourl:rowData.photoUrl,
materialName: rowData.materialName,
materialType: rowData.materialType,
materialDescribe: rowData.describe,
materialBrand: rowData.brand,
materialUnit: rowData.unit,
materialProcessMethod: rowData.processMethod,
}
})
layer.close(index);
}
// 逻辑删除前端的一行数据
function removeDevelopModify(materialNo){
$("#bootstrap-table-developModify").bootstrapTable('remove', {
field: 'materialNo',
values: materialNo
})
}
// 点击选择采购物料按钮
function insertPurchase() {
var url = prefix + '/purchaseMaterialSelect';
var options = {
title: '选择物料',
url: url,
callBack: purchaseDoSubmit
};
$.modal.openOptions(options);
}
var option1 = { // 选择采购物料
id: "bootstrap-sub-table-material", $(function(){
// url: prefix + "/list", var options = {
id: 'bootstrap-table-purchase',
url: prefix+'/getDevelopModifyDetailMaterialByCode',
queryParams: purchaseQueryParams,
showSearch: false, showSearch: false,
showRefresh: false, showRefresh: false,
showToggle: false, showToggle: false,
showColumns: false, showColumns: false,
modalName: "bom", uniqueId: "id",
pagination: false, // 设置不分页
sidePagination: "client",
detailView: true, detailView: true,
height: $(window).height() - 100,
//指定父id列
onExpandRow : function(index, row, $detail) { onExpandRow : function(index, row, $detail) {
$detail.html('<table class="table-container" id="all_level_table_'+row.id+'"></table>').find('table'); initChildTable(index, row, $detail);
// 多阶
initAllLevelTable(index,row,$detail);
// $.table.bootstrapTable('resetView');
}, },
columns: [ columns: [
{checkbox: false}, {
{title: 'bom号',field: 'bomNo', }, field: 'developOrderDetailId',
{title: '关联料号',field: 'materialNo', }, title: '主键id',
{field: 'photoUrl',title: '图片',formatter: function(value, row, index) {return $.table.imageView(value);}}, visible: false
{title: '物料名称',field: 'materialName', }, },
{field: 'materialType',title: '物料类型',formatter: function(value, row, index) { return $.table.selectCategoryLabel(materialTypeDatas, value);}}, {
{field: 'processMethod', title: '半成品类型',formatter: function(value, row, index) {return $.table.selectDictLabel(processMethodDatas, value);}}, field: 'bomId',
{field: 'unit',title: '单位',}, title: 'bom主键Id',
{ title: '品牌',field: 'brand', }, },
{title: '描述',field: 'describe'}, {
{field: 'num',title: '订单数量',}, field: 'materialNo',
{field: 'parentId',title: '父级id',visible:false}, align: 'center',
{title: '操作',align: 'center', title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; return $.table.selectCategoryLabel(materialTypeDatas, value);
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="remove(\'' + row.id + '\')"><i class="fa fa-eye"></i> 删除</a> ');
return actions.join('');
} }
}] },
}; {
$.table.init(option1); field: 'materialUnit',
align: 'center',
var option2 = { title: '单位',
id: "bootstrap-sub-table-biztoitem", formatter: function(value, row, index) {
// url: prefix + "/list", return $.table.selectDictLabel(sysUnitClassDatas, value);
showSearch: false, }
showRefresh: false, },
showToggle: false, {
showColumns: false, field: 'materialBrand',
modalName: "通知人", align: 'center',
detailView: true, title: '品牌'
height: $(window).height() - 100, },
//指定父id列 {
columns: [ field: 'materialDescribe',
{checkbox: false}, align: 'center',
{title: '通知人',field: 'item', }, title: '描述'
{title: '确认时间',field: 'materialNo', }, },
{title: '操作',align: 'center', {
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'materialNum',
align: 'center',
title: '订单数量',
editable:true
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="remove(\'' + row.id + '\')"><i class="fa fa-eye"></i> 删除</a> '); actions.push('<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="removePurchase(\'' + row.materialNo + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join(''); return actions.join('');
} }
}] }
]
}; };
$.table.init(option2); $.table.init(options);
}); })
initAllLevelTable = function(index, row, $detail) {
$("#"+"all_level_table_"+row.id).bootstrapTable({ initChildTable = function(index, row, $detail) {
url: prefix + "/allLevelList", var parentRow = row;
var parentRowIndex = index;
var childTableId = 'child_table_' + index;
var childFormTableId = 'child_form_table_' + index;
var childTableFormId = 'child_table_form_' + index;
// $detail.html('<form id="'+childTableFormId+'"><table id="'+childTableId+'"></table><table id="'+childFormTableId+'"></table></form>');
$detail.html('<table id="' + childTableId + '"></table><table id="' + childFormTableId + '"></table>');
// BOM展示
$('#' + childTableId).bootstrapTable({
url: ctx + "erp/bom/allLevelList",
method: 'post', method: 'post',
sidePagination: "server", sidePagination: "server",
contentType: "application/x-www-form-urlencoded", contentType: "application/x-www-form-urlencoded",
queryParams: { queryParams: {
parentId: row.id parentId: parentRow.bomId
}, },
columns: [{ columns: [{
field: 'id', field: 'id',
title: '主键id' title: '主键id',
visible: false
}, },
{ {
field: 'level', field: 'level',
title: '层', title: '层',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return $.table.selectDictLabel(levelDatas, value); return $.table.selectDictLabel(levelDatas, value);
} }
}, },
{ {
field: 'bomNo', field: 'bomNo',
title: 'bom号', title: 'BOM号',
formatter: function (value, row, index) { formatter: function (value, row, index) {
if (value == null || value == '') { if (value == null || value == '') {
return '/'; return '/';
@ -288,13 +495,6 @@
} }
} }
}, },
{
field: 'photoUrl',
title: '图片',
formatter: function(value, row, index) {
return $.table.imageView(value);
}
},
{ {
field: 'materialNo', field: 'materialNo',
title: '料号', title: '料号',
@ -306,6 +506,13 @@
} }
} }
}, },
{
field: 'photoUrl',
title: '图片',
formatter: function (value, row, index) {
return $.table.imageView(value);
}
},
{ {
field: 'materialName', field: 'materialName',
title: '物料名称', title: '物料名称',
@ -335,7 +542,6 @@
} }
} }
}, },
{ {
field: 'brand', field: 'brand',
title: '品牌', title: '品牌',
@ -358,6 +564,22 @@
} }
} }
}, },
{
field: 'processMethod',
title: '加工方式',
formatter: function (value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门', visible: false,
formatter: function (value, row, index) {
return $.table.selectDictLabel(warehouseDates, value);
}
},
{ {
field: 'useNum', field: 'useNum',
title: '用量', title: '用量',
@ -372,18 +594,28 @@
{ {
field: 'lossRate', field: 'lossRate',
title: '损耗率', title: '损耗率',
formatter: function (value,row,index){ // formatter: function (value,row,index){
if (value == null || value == ''){ // if (value == null || value == ''){
return "/"; // return '/';
} // }else{
return value + "%"; // return value + "%";
} // }
// }
}, },
{ {
field: 'processMethod', field: 'materialNum',
title: '半成品类型', title: '订单用量',
formatter: function (value, row, index) { formatter: function (value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value); // 获取父行的materialNum值,如果不存在则为0
var materialNum = parentRow.materialNum || 0;
// 获取当前行的useNum值,如果不存在则为0
var useNum = row.useNum || 0;
// 计算结果
var result = materialNum * useNum;
// 如果result为0且materialNum或useNum为null/undefined,则返回空字符串
return (materialNum === 0 || useNum === 0) && (parentRow.materialNum === null || row.useNum === null) ? '' : result;
} }
}, },
{ {
@ -395,126 +627,72 @@
field: 'sortNo', field: 'sortNo',
title: '排序', title: '排序',
visible: false visible: false
}] }],
}); // 当所有数据被加载时触发
}; onLoadSuccess: function (data) {
initChildSonTable = function(index, row, $detail) {
var childSonTable = $detail.html('<table style="table-layout:fixed"></table>').find('table');
$(childSonTable).bootstrapTable({
url: prefix + "/subList",
method: 'post',
detailView: true,
sidePagination: "server",
contentType: "application/x-www-form-urlencoded",
queryParams : {parentId: row.id},
onExpandRow : function(index, row, $detail) {initChildSonTable(index, row, $detail);},
columns: [
{field: 'id',title: '主键id'},
{field: 'level',title: '层级',formatter: function(value, row, index) {return $.table.selectDictLabel(levelDatas, value);}},
{field: 'bomNo',title: 'bom号',formatter:function (value,row,index){if (value == null || value == ''){return '/'; }else{ return value;}}},
{field: 'photoUrl',title: '图片',formatter:function (value,row,index){if (value == null || value == ''){ return '/';}else{return $.table.imageView(value);}}},
{field: 'materialNo',title: '料号',},
{field: 'materialName',title: '物料名称',},
{field: 'materialType',title: '物料类型',formatter: function(value, row, index) {return $.table.selectCategoryLabel(materialTypeDatas, value);}},
{field: 'describe',title: '描述',},
{field: 'brand',title: '品牌',},
{field: 'unit',title: '单位',},
{field: 'lossRate',title: '损耗率(%)',formatter:function (value,row,index){return value + '%';}},
{field: 'processMethod',title: '半成品类型',formatter: function(value, row, index) {return $.table.selectDictLabel(processMethodDatas, value);}},
{field: 'useNum',title: '订单用量',},
{field: 'parentId',title: '父级id',visible: false,},
]
});
}
function insertRow() {
var url = ctx + "system/makeorder/selectMakeorder";
var options = {
title: '选择生产物料',
url: url,
data: {
"materialType": $("#makeNo").val()
}, },
callBack: doSubmit });
};
$.modal.openOptions(options);
} }
function insertRow2() {
var url = ctx + "erp/material/select"; function purchaseQueryParams(params) {
var options = { var curParams = {
title: '选择料号', // 传递参数查询参数
url: url, developOrderCode: $("#developOrderCode").val()
callBack: doSubmit2
}; };
$.modal.openOptions(options); console.log(curParams);
} return curParams;
function doSubmit(index, layero,uniqueId){
console.log(uniqueId);
var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections')[0];
var totalNum = $("#bootstrap-sub-table-developModify").bootstrapTable('getData').length;
console.log("rowData: "+rowData);
$("#bootstrap-sub-table-developModify").bootstrapTable('insertRow',{
index: 1,
row: {
id:rowData.id,
bomNo:rowData.bomNo,
materialNo: rowData.materialNo,
materialName: rowData.materialName,
materialType: rowData.materialType,
describe: rowData.describe,
processMethod: rowData.processMethod,
unit: rowData.unit,
brand: rowData.brand,
level: "1",
lossRate:'',
useNum:''
}
})
layer.close(index);
} }
function doSubmit2(index, layero,uniqueId){
function purchaseDoSubmit(index, layero,uniqueId){
console.log(uniqueId); console.log(uniqueId);
var iframeWin = window[layero.find('iframe')[0]['name']]; var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections')[0]; var rowData = iframeWin.$('#bootstrap-purchaseMaterialSelect-table').bootstrapTable('getSelections')[0];
var totalNum = $("#bootstrap-sub-table-material").bootstrapTable('getData').length;
//判断是否重复
var rows = $("#bootstrap-table-purchase").bootstrapTable('getData').length;
if (rows > 0){
$.modal.alertError("每次只能修改一条物料!");
return;
}
// for(var i=0;i<rows;i++){
// var data = $("#bootstrap-table-developModify").bootstrapTable('getData')[i];
// if(data.materialNo==rowData.materialNo){
// $.modal.alertError("不能选择已添加过的相同物料");
// return;
// }
// }
console.log("rowData: "+rowData); console.log("rowData: "+rowData);
$("#bootstrap-sub-table-material").bootstrapTable('insertRow',{ $("#bootstrap-table-purchase").bootstrapTable('insertRow', {
index:1, index:1,
row: { row: {
id:rowData.id, bomId:rowData.bomId,
bomNo:rowData.bomNo,
materialNo:rowData.materialNo, materialNo:rowData.materialNo,
materialPhotourl:rowData.materialPhotourl,
materialName: rowData.materialName, materialName: rowData.materialName,
materialType: rowData.materialType, materialType: rowData.materialType,
describe: rowData.describe, materialDescribe: rowData.describe,
processMethod: rowData.processMethod, materialBrand: rowData.brand,
unit: rowData.unit, materialUnit: rowData.unit,
brand: rowData.brand, materialProcessMethod:rowData.processMethod,
level: "1", materialNum:'0'
lossRate:'',
useNum:''
} }
}) })
layer.close(index); layer.close(index);
} }
function remove(id){
$("#bootstrap-sub-table-developModify").bootstrapTable('remove', { // 逻辑删除前端的一行数据
field: 'id', function removePurchase(materialNo){
values: id $("#bootstrap-table-purchase").bootstrapTable('remove', {
}) field: 'materialNo',
} values: materialNo
function removeRow(id){
$("#bootstrap-sub-table-material").bootstrapTable('remove', {
field: 'id',
values: id
}) })
} }
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-developModifyOrder-edit').serialize());
}
}
</script> </script>
</body> </body>
</html> </html>
Loading…
Cancel
Save